[英]How to pass request body into GraphQL Context?
我正在尝试将请求主体放入上下文中,因为正文的一部分包含需要解码的JWT。 但是,当我尝试以下内容时,我的上下文未定义:
app.use('/', graphqlHTTP((req) => ({
schema: Schema,
context: req.body,
pretty: true,
graphiql: false
})));
我退出了req,我没有看到身体。 我正在使用一个名为react-reach的库,它会在请求中向主体添加以下内容:
{
query: {...},
queryParams: {...},
options: {
token: '...' // <-- I'm passing the token into options
}
}
我知道正在解释正文,因为正在解释和执行正文中的查询/突变。 传递给上下文时似乎无法找到它。
除非您使用其他正文解析器中间件,否则您的req.body
是undefined
。 从Express文档:
req.body
包含请求正文中提交的键值对数据。 默认情况下,它是未定义的,并且在使用正文解析器和multer等正文解析中间件时会填充。 http://expressjs.com/en/api.html#req.body
graphqlHTTP
正在解析请求体(见这里 ),这就是你的查询/突变工作的原因。
添加中间件(如body-parser或multer)来解析请求体应该使它在req.body
上req.body
,然后你的上下文应该填充你正在寻找的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.