【发布时间】:2020-10-21 04:45:05
【问题描述】:
我正在使用 Apollo Server 在使用 koa.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 './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 函数只执行return new ApolloServer({ ... }),所以它同样简单。
但是,现在我需要拼接一个新的远程架构。问题是拼接过程是异步发生的。所以现在我对createApolloServer() 的调用也需要异步进行。
我显然不能在根级别做const apollo = await createApolloServer()。
到目前为止,我已经尝试过类似以下的方法:
const startServer = async () => {
const apollo = await createGraphQLService();
apollo.applyMiddleware({ app });
};
startServer();
exports.handler = serverless(app);
但现在我的 /graphql 端点返回 404。
如何启动此服务器?
【问题讨论】:
标签: node.js aws-lambda graphql