代码之家  ›  专栏  ›  技术社区  ›  A. L

graphql查询嵌入在需求主体

  •  0
  • A. L  · 技术社区  · 7 年前

    所以我试着从REST迁移到GraphQL,但是有一件小事让它变得有点困难,那就是查询。

    www.example.com?test=test 这个 query: { test: "test" } body: { query: { test: "test" } } 在GraphQL中。所以我想知道是否有一些中间件或者什么东西可以把这个移回来。

    我在用 body-parser 通过

    var bodyParser =
        require("body-parser")
    app.use(bodyParser.json())
    app.use(bodyParser.urlencoded({
        extended: true
    })) 
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Daniel Rearden    7 年前

    除非有特定的原因要自己验证和执行GraphQL文档,否则可能应该使用现有的库来验证。两种更受欢迎的express解决方案:

    //express-graphql
    const graphqlHTTP = require('express-graphql');
    const { makeExecutableSchema } = require('graphql-tools');
    
    const schema = makeExecutableSchema({
      typeDefs,
      resolvers,
    });
    
    app.use('/graphql', graphqlHTTP({
      schema,
      graphiql: true,
    }));
    
    app.listen(4000);
    
    // apollo-server-express
    const express = require('express');
    const { ApolloServer, gql } = require('apollo-server-express');
    
    const server = new ApolloServer({ typeDefs, resolvers });
    
    server.applyMiddleware({ app });
    
    app.listen(4000);
    

    apollo-server

    const { ApolloServer, gql } = require('apollo-server');
    
    // pass in a schema
    const server = new ApolloServer({
      schema
    });
    
    // or let Apollo make it for you
    const server = new ApolloServer({
      typeDefs,
      resolvers,
    });
    
    server.listen()
    

    这些解决方案都不需要您包括 body-parser 并提供大量现成的额外功能。

    推荐文章