Javascript 阿波罗服务器使用AWS Lambda部署时出错

Javascript 阿波罗服务器使用AWS Lambda部署时出错,javascript,aws-lambda,graphql,apollo,apollo-server,Javascript,Aws Lambda,Graphql,Apollo,Apollo Server,各位,你好吗?我有一个疑问,我刚刚在AWS Lambda中实现了apollo服务器制作的API。我使用官方文档作为指导,但是我注意到上下文处理有点不同。我对后者有点怀疑,因为我使用“无服务器脱机”进行了某些更改,并且在本地一切都很好,但一旦我部署了它,情况就不一样了。显然,我生成的身份验证上下文没有到达我的查询。如果有人能给我一些指导,我将非常感激 这是我的API索引: const{ApolloServer,gql}=require('apollo-server-lambda'); const

各位,你好吗?我有一个疑问,我刚刚在AWS Lambda中实现了apollo服务器制作的API。我使用官方文档作为指导,但是我注意到上下文处理有点不同。我对后者有点怀疑,因为我使用“无服务器脱机”进行了某些更改,并且在本地一切都很好,但一旦我部署了它,情况就不一样了。显然,我生成的身份验证上下文没有到达我的查询。如果有人能给我一些指导,我将非常感激

这是我的API索引:
const{ApolloServer,gql}=require('apollo-server-lambda');
const typeDefs=require('./db/schema');
const resolvers=require('./db/resolvers');
const db=require('./config/db');
const jwt=require('jsonwebtoken');
require('dotenv').config({path:'variables.env'});
db.conectDB();
//ApolloServer构造函数需要两个参数:您的模式
//定义和解析程序集。
const server=新服务器({
typeDefs,
解析器,
操场:{
端点:“/graphql”
},
上下文:({event,context})=>{
试一试{
const token=event.headers['authorization']| |';
如果(令牌){
context.user=jwt.verify(token.replace('Bearer',''),process.env.KEY\u token);
}
返回{
标题:event.headers,
functionName:context.functionName,
事件
上下文
}
}捕获(错误){
控制台错误(error);
}
}
});
exports.graphqlHandler=server.createHandler({
cors:{
来源:“*”,
证书:正确,
},

});在我看来,您没有在上下文中调用getUserByToken。对吗?所以,我不确定你是如何遇到这个错误的

我能给你一些建议吗

连接到数据库可能是(或者应该是)异步的。为此,我将按如下方式运行您的代码:


db.connect()
  .then(() => {
   ... handle your request in here
  })
  .catch(console.error);
我想您想在这行中调用getUserByToken:

context.user = jwt.verify(token.replace('Bearer ',''), process.env.KEY_TOKEN);

从我看到的情况来看,您没有在上下文中调用getUserByToken。对吗?所以,我不确定你是如何遇到这个错误的

我能给你一些建议吗

连接到数据库可能是(或者应该是)异步的。为此,我将按如下方式运行您的代码:


db.connect()
  .then(() => {
   ... handle your request in here
  })
  .catch(console.error);
我想您想在这行中调用getUserByToken:

context.user = jwt.verify(token.replace('Bearer ',''), process.env.KEY_TOKEN);