[英]How can I get header for node graphql resolver without express?
我知道在快递中,我们可以有request.header,但是没有快递,我怎么能得到标题?
我正在使用Apollo解析器,正在尝试在我的graphql解析器中使用标头。
async item (_, args, context) {
if (ApiVersion === '2') {
return await itemv2(args);
}
return await itemv1(args);
},
如docs所示,传递给ApolloServer
的构造函数的context
参数可以是对象或函数。 如果是函数,则应返回上下文对象或将解析为一个的Promise。 该函数将带有req
属性的对象作为其第一个参数传递给它。 这是一个明确的请求对象,因为这是Apollo Server在后台使用的对象。 您可以访问此对象通常可用的任何属性,包括标题:
new ApolloServer({
typeDefs,
resolvers,
context: ({ req }) => {
console.log(req.headers.authorization)
return req
},
})
因此,如果将整个req
对象用作上下文,则可以执行以下操作:
async item (_, args, context) {
if (context.headers['api-version'] === '2') {
return await itemv2(args);
}
return await itemv1(args);
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.