使用Express-GraphQL的GraphQL订阅

时间:2020-07-28 13:07:29

标签: node.js express graphql express-graphql graphql-subscriptions

谁能告诉我如何在Node中使用 Express-GraphQL 来实现 GraphQL订阅

3 个答案:

答案 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');