谁能告诉我如何在Node中使用 Express-GraphQL 来实现 GraphQL订阅?
答案 0 :(得分:1)
我一直在研究同样的问题。
我已阅读 express-graphql
订阅的 GitHub 问题,该存储库的一名成员建议在结束评论中使用 graphql-ws
。
这是我的 GitHub 项目 shammelburg/express-graphql-api 的链接,您可以npm start
加载 grapiql 以测试查询和变异。
为了测试订阅,我创建了一个 Angular 项目,它实现了 graphql-ws
的 observables 示例。 shammelburg/graphql-rxjs-angular
Angular 项目还使用 graphql-request
进行查询和更改。
这是一个非常轻量级的解决方案,效果很好。
答案 1 :(得分:0)
我也遇到了同样的问题。我无法在文档中找到明确的解决方案。所以我刚刚改用graphql-yoga。但我确实找到了这个帖子,所以 do check it out
答案 2 :(得分:-1)
请参见Authentication and Express Middleware
var express = require('express');
var graphqlHTTP = require('express-graphql');
var { buildSchema } = require('graphql');
var schema = buildSchema(`
type Query {
ip: String
}
`);
const loggingMiddleware = (req, res, next) => {
console.log('ip:', req.ip);
next();
}
var root = {
ip: function (args, request) {
return request.ip;
}
};
var app = express();
app.use(loggingMiddleware);
app.use('/graphql', graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true,
}));
app.listen(4000);
console.log('Running a GraphQL API server at localhost:4000/graphql');