apollo-server - 错误:您必须在调用 `server.applyMiddleware()` 之前`await server.start()`
问题描述
更新apollo-server
到版本 3 后,控制台中显示以下错误
C:\projects\my_project\node_modules\apollo-server-core\src\ApolloServer.ts:554
throw new Error(
^
Error: You must `await server.start()` before calling `server.applyMiddleware()`
at ApolloServer.assertStarted (C:\projects\my_project\node_modules\apollo-server-core\src\ApolloServer.ts:554:13)
at ApolloServer.applyMiddleware (C:\projects\my_project\node_modules\apollo-server-express\src\ApolloServer.ts:60:10)
at Object.<anonymous> (C:\projects\my_project\src\index.ts:17:14)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Module.m._compile (C:\projects\my_project\node_modules\ts-node\src\index.ts:1225:23)
at Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Object.require.extensions.<computed> [as .ts] (C:\projects\my_project\node_modules\ts-node\src\index.ts:1228:12)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
[nodemon] app crashed - waiting for file changes before starting...
添加server.start()
之前server.applyMiddleware()
并不能解决问题。有什么建议么?
解决方案
这对我有用,可以替代await server.start()
server.start().then(res => {
server.applyMiddleware({ app, path: '/' });
app.listen({ port }, () =>
console.log(`Gateway API running at port: ${port}`)
);
});
这篇文章让我找到了答案。
推荐阅读
- javascript - 固定侧边栏上的错误,平滑滚动
- python - 许多不同项目的生成器
- angular - 无法将对象添加到 EventInput 数组、FullCalendar、Angular 的列表中
- c# - 运算符是否无法区分 short[] 和 ushort[]?
- database - 如何确认记录的值是否符合 dolphindb 中的分区方案?
- android - 如何验证有很多空格的文本?
- if-statement - 检查许多单元格的数据并报告数据(如果发现)
- python - Python 覆盖在 python 3.8 下的 Windows 上安装没有 C 扩展,但在 python 3.7 下没有,我如何强制 C 扩展版本?
- python - 狮身人面像 index.rst 里面的目录
- python-3.x - 如何从附加的 SemEval 2017 文本文件中读取列数据