簡體   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