如何关闭graphql-yoga服务器?

Posted

技术标签:

【中文标题】如何关闭graphql-yoga服务器?【英文标题】:How to close graphql-yoga server? 【发布时间】:2019-11-25 04:33:59 【问题描述】:

对于快递的描述在

how to properly close node-express server?

但在瑜伽文档中

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

【问题讨论】:

【参考方案1】:

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服务器?的主要内容,如果未能解决你的问题,请参考以下文章

通过 apollo 连接到 graphql-yoga 服务器进行订阅的正确方法是啥?

markdown 来自graphql-yoga(后端)的prisma服务器连接测试

javascript Graphql-yoga auth api的服务器初始化

Type as property 使用 graphql-yoga 和 prisma 解析为 null

使用 Mongoose 和 graphql-yoga 实现分页

带有graphql-yoga的子字段上的Graphql错误