Node.js 如何将Apollo服务器异步连接到Lambda处理程序? 我使用Apple服务器在膝关节炎的LaBDA上使用GOAQ.J../P>提供一个图形化的端点。
服务器非常简单:Node.js 如何将Apollo服务器异步连接到Lambda处理程序? 我使用Apple服务器在膝关节炎的LaBDA上使用GOAQ.J../P>提供一个图形化的端点。,node.js,aws-lambda,graphql,Node.js,Aws Lambda,Graphql,服务器非常简单: import Koa from 'koa'; import Router from 'koa-router'; import bodyParser from 'koa-bodyparser'; import cors from '@koa/cors'; import logger from 'koa-logger'; import serverless from 'serverless-http'; import { createApolloServer } from '.
import Koa from 'koa';
import Router from 'koa-router';
import bodyParser from 'koa-bodyparser';
import cors from '@koa/cors';
import logger from 'koa-logger';
import serverless from 'serverless-http';
import { createApolloServer } from './graphql';
const app = new Koa();
const router = new Router();
app.use(logger())
.use(bodyParser())
.use(cors())
.use(router.routes())
.use(router.allowedMethods());
const apollo = createApolloServer();
apollo.applyMiddleware({ app });
exports.handler = serverless(app);
createApolloServer
函数只执行一个返回新的ApolloServer({…})
,因此它同样简单
然而,现在我需要缝合一个新的远程模式。问题是缝合过程是异步进行的。因此,现在我对createApolloServer()
的调用也需要异步进行
我显然无法在根级别执行const apollo=await createApolloServer()
到目前为止,我已经尝试了以下类似的方法:
const startServer = async () => {
const apollo = await createGraphQLService();
apollo.applyMiddleware({ app });
};
startServer();
exports.handler = serverless(app);
但是现在我的/graphql
端点返回404
如何启动此服务器?我可以这样做;不确定这是否是最好的方法,但似乎有效:
const startServer = async () => {
const apollo = await createGraphQLService();
apollo.applyMiddleware({ app });
return serverless(app);
};
let serverStartup = startServer();
exports.handler = async (event, context) => {
let handler = await serverStartup;
return await handler(event, context);
};