如何 运行 使用 apollo 服务器从变量进行 graphql 查询

How to run graphql query with apollo server from variable

使用纯 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 }');

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

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!' }