【问题标题】:GraphQL Subscriptions using Express-GraphQL使用 Express-GraphQL 的 GraphQL 订阅
【发布时间】:2020-11-17 22:32:12
【问题描述】:

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

【问题讨论】:

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


    【解决方案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 进行查询和突变。

    这是一个非常轻量级的解决方案,效果很好。

    【讨论】:

      【解决方案2】:

      我也遇到了同样的问题。我无法在文档中找到明确的解决方案。所以我刚刚改用graphql-yoga。但我确实找到了这个帖子,所以do check it out

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2022-09-29
          • 2017-09-01
          • 2019-02-16
          • 2017-09-19
          • 2019-12-02
          • 2021-10-09
          • 2019-01-19
          • 1970-01-01
          • 2019-09-27
          相关资源
          最近更新 更多