代码之家  ›  专栏  ›  技术社区  ›  Yuri Taratorkin

如何使用阿波罗服务器从变量运行graphql查询

  •  1
  • Yuri Taratorkin  · 技术社区  · 6 年前

    使用纯graphql实现,我们可以从如下字符串运行查询:

    var { graphql, buildSchema } = require('graphql');
    
    var schema = buildSchema(`
      type Query {
        hello: String
      }
    `);
    
    var root = { hello: () => 'Hello world!' };
    
    graphql(schema, '{ hello }', root).then((response) => {
      console.log(response);
    });
    

    但在ApolloServer中找不到相同的方法:

    const server = new ApolloServer({ typeDefs, resolvers });
    // something like this
    server.runQuery('{ hello }');
    
    1 回复  |  直到 6 年前
        1
  •  4
  •   xwlee Jamie Starke    6 年前

    实际上,您可以这样测试查询:

    const { ApolloServer, gql } = require('apollo-server');
    const { createTestClient } = require('apollo-server-testing');
    
    const typeDefs = gql`
      type Query {
        hello: String
      }
    `;
    
    const resolvers = {
      Query: {
        hello: () => 'Hello world!'
      }
    };
    
    const server = new ApolloServer({ typeDefs, resolvers });
    const { query } = createTestClient(server);
    const res = query({ query: '{ hello }' });
    res.then(({ data }) => console.log(data))
    // ==> [Object: null prototype] { hello: 'Hello world!' }