繁体   English   中英

如何将请求体传递给GraphQL上下文?

[英]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.bodyundefined 从Express文档:

req.body

包含请求正文中提交的键值对数据。 默认情况下,它是未定义的,并且在使用正文解析器和multer等正文解析中间件时会填充。 http://expressjs.com/en/api.html#req.body

graphqlHTTP正在解析请求体(见这里 ),这就是你的查询/突变工作的原因。

添加中间件(如body-parser或multer)来解析请求体应该使它在req.bodyreq.body ,然后你的上下文应该填充你正在寻找的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM