【问题标题】:req always undefined in Apollo Server contextreq 在 Apollo Server 上下文中始终未定义
【发布时间】:2019-07-15 02:30:26
【问题描述】:

我对 apollo-server 上下文有疑问。我写了以下代码:

const { ApolloServer } = require("apollo-server-azure-functions");
const { typeDefs, resolvers } = require('../graphql_schema/schema');

const server = new ApolloServer({
    typeDefs,
    resolvers, 
    context: ({ req }) => {
      console.log(req);
      return {
        req: req
      }
    },
    introspection: false,
    playground: true,
  });

  module.exports = server.createHandler();

但是 req 变量总是未定义的。 有人有想法吗?

我正在使用以下版本的阿波罗

"apollo-server": "^2.4.2",
"apollo-server-azure-functions": "^2.4.2",

非常感谢。

【问题讨论】:

    标签: graphql apollo


    【解决方案1】:

    我有解决问题的办法。

    context: ( {req} ) =>... 
    

    不要解构req,应该是:

    context: (req) => ...
    

    const { ApolloServer } = require("apollo-server-azure-functions");
    const { typeDefs, resolvers } = require('../graphql_schema/schema');
    
    const server = new ApolloServer({
        typeDefs,
        resolvers, 
        context: (req) => {
          return {
            accesstoken: GetAccessToken(req.request)
          }
        },
        introspection: false,
        playground: true,
      });
    
      const GetAccessToken = function (request){
        const token = (request.headers.authorization || '').replace('BEARER ', '');
        return token;
      }
    
      module.exports = server.createHandler();
    

    【讨论】:

      【解决方案2】:

      需要在顶部定义req参数

      const { ApolloServer } = require("apollo-server-azure-functions");
      const { typeDefs, resolvers } = require('../graphql_schema/schema');
      
      const server = new ApolloServer({
          typeDefs,
          resolvers,
          req,
          context: ({ req }) => {
            console.log(req);
            return {
              req: req
            }
          },
          introspection: false,
          playground: true,
        });
      
        module.exports = server.createHandler();

      【讨论】:

        猜你喜欢
        • 2021-01-31
        • 2020-05-07
        • 2021-12-28
        • 2021-10-22
        • 1970-01-01
        • 2021-04-20
        • 1970-01-01
        • 2021-01-24
        • 2020-08-08
        相关资源
        最近更新 更多