【问题标题】:`express` object from apollo-server-lambda context is undefined来自 apollo-server-lambda 上下文的“express”对象未定义
【发布时间】:2021-10-22 07:29:25
【问题描述】:

我正在关注this guide 以使我的 apollo 服务器使用 Netlify 功能运行。它适用于未经身份验证的请求,但是当我需要读取标头时遇到问题。

指南说我可以从express 对象中获取req,如此 sn-p 所示。

const server = new ApolloServer({
  typeDefs,
  resolvers,
  context: ({ event, context, express }) => ({
    headers: event.headers,
    functionName: context.functionName,
    event,
    context,
    expressRequest: express.req,
  }),
});

但是,当我自己尝试这个时,我得到一个未定义的express。 这是我的代码。

const { ApolloServer } = require("apollo-server-lambda");
const accountsGraphQL = require("./accounts.js");
const schema = require("./schema/index.js");

const server = new ApolloServer({
  schema,
  context: async ({ event, context, express }) => {
    console.log(express); // outputs undefined
    return {
      headers: event.headers,
      functionName: context.functionName,
      event,
      context: await accountsGraphQL.context(express.req), // errors `Context creation failed: Cannot read property 'req' of undefined`
    }
  },
  introspection: true,
  playground: true,
});

const handler = server.createHandler();

module.exports = { handler };

【问题讨论】:

    标签: node.js aws-lambda apollo-server netlify netlify-function


    【解决方案1】:

    无论如何,我通过创建另一个包含reqheadersauthorization 的对象解决了我的问题。

    const { ApolloServer } = require("apollo-server-lambda");
    const accountsGraphQL = require("./accounts.js");
    const schema = require("./schema/index.js");
    
    const server = new ApolloServer({
      schema,
      context: async ({ event }) => {
        return await accountsGraphQL.context({
          req: { headers: { authorization: event.headers.authorization } },
        });
      },
      introspection: true,
      playground: true,
    });
    
    const handler = server.createHandler();
    
    module.exports = { handler };
    
    

    【讨论】:

      猜你喜欢
      • 2020-03-05
      • 2021-04-20
      • 2020-08-08
      • 2019-07-15
      • 2022-06-21
      • 2019-01-21
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      相关资源
      最近更新 更多