[英]`express` object from apollo-server-lambda context is undefined
我按照本指南使我的 apollo 服務器運行 Netlify 函數。 它適用於未經身份驗證的請求,但是當我需要閱讀標頭時我遇到了問題。
該指南說我可以從express
req
獲得請求,如該片段所示。
const server = new ApolloServer({
typeDefs,
resolvers,
context: ({ event, context, express }) => ({
headers: event.headers,
functionName: context.functionName,
event,
context,
expressRequest: express.req,
}),
});
但是,當我自己嘗試時,我得到了一個 undefined 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 };
無論如何,我通過制作另一個req
解決了我的問題,其中包含帶有headers
和authorization
的請求。
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 };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.