Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将Apollo服务器异步连接到Lambda处理程序? 我使用Apple服务器在膝关节炎的LaBDA上使用GOAQ.J../P>提供一个图形化的端点。_Node.js_Aws Lambda_Graphql - Fatal编程技术网

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);
};