javascript - 通用服务,了解我是在 GRAPHQL 上下文还是 HTTP 上下文中?

标签 javascript node.js typescript graphql nestjs

是否可以注入(inject)任何内容来了解​​我所处的上下文,即我的服务是从 graphql 请求或 http 请求调用的。

我有一个请求范围服务,需要返回一个 header 。 header 存储在 REQUEST 对象上,如果它是 HTTP 上下文,则可以自动注入(inject)该对象,或者它在 graphql 上下文上可用(正如我之前设置的那样) - 因此

return this.request.headers["test"]

或者

return this.context.request.headers["test"]

但我需要了解我所处的上下文才能返回正确的对象

有什么想法吗?

提前致谢

最佳答案

您可以创建一个辅助函数来检索 header :

getHeader(key: string) {
  if (this.request && this.request.headers && this.request.headers[key]) {
    return this.request.headers[key];
  } else if (this.context.request && this.context.request.headers && this.context.request.headers[key]) {
    return this.context.request.headers[key];
  } else {
    throw new BadRequestException(`Required header ${key} is missing`);
  }
}

关于javascript - 通用服务,了解我是在 GRAPHQL 上下文还是 HTTP 上下文中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55902611/

相关文章:

javascript - 选择 select n°1 后如何启用禁用的 select n°2?

javascript - 当我使用 ' ; ' 而不是 ' && ' 时,输出发生变化,我需要帮助来理解它

javascript - Typescript - 如何将字符串 ("console.log") 转换为函数 (console.log)

javascript - typescript + react : Element type is invalid: expected a string (for built-in components)

javascript - 使用 jQuery UI 小部件时如何发现所有可用属性?

javascript - NextJS getStaticProps 没有将返回的 Prop 传递给页面

javascript - 在 Node.js 中混合 Promise 和递归

node.js - 如何在 node.js 和 mongoDB native 驱动程序上启用调试?

angular - Angular 6 的 Karma-Jasmine 上的 "TypeError: Cannot read property ' 路由配置 ' of null"

javascript - Angular JS 自定义分隔符