对于快递,其描述见
但是在瑜伽文档中
https://github.com/prisma/graphql-yoga
没有关于
close
方法的信息。
@perdox的解决方案解决了我的问题,正确答案是:
const gqlServer = new GraphQLServer({ typeDefs, resolvers });
const server = gqlServer.start(() => console.log('Server is running on localhost:4000'));
(async function f() {
(await server).close();
})();
GraphQLYoga 是一个工具集合,使用/包装 Express 服务器。
参见:https://github.com/prisma/graphql-yoga/blob/master/src/index.ts
正如您在源代码中看到的那样,GraphQLServer 包装了 Express 服务器,并且 start 方法返回一个 HttpServer Promise。因此,您应该能够通过调用 HttpServer 上的 close 方法来关闭服务器:
const gqlServer = new GraphQLServer({ typeDefs, resolvers })
const server = gqlServer.start(() => console.log('Server is running on localhost:4000'))
server.close()
要正确关闭 [*graphql-yoga 服务器*][1],优雅地处理服务器关闭非常重要。这里更详细地解释了如何关闭服务器,包括如何根据各种信号或条件来停止它。这涉及在需要时停止服务器(例如,当应用程序结束或接收终止信号时),并以优雅的方式处理正在进行的连接。
优雅关闭 GraphQL Yoga 服务器的示例代码 下面是一个完整的示例,演示了如何启动 graphql-yoga 服务器,处理各种关闭条件,并确保服务器正常停止而不会突然切断正在进行的请求。