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

Posted

技术标签:

【中文标题】如何使用 apollo 服务器从变量运行 graphql 查询【英文标题】:How to run graphql query with apollo server from variable 【发布时间】:2019-05-26 04:19:49 【问题描述】:

通过纯 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】:

其实你可以这样测试查询:

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

【讨论】:

以上是关于如何使用 apollo 服务器从变量运行 graphql 查询的主要内容,如果未能解决你的问题,请参考以下文章

如何解决访问 DatoCMS 的 Apollo 错误 401

身份验证Apollo Graphql for android

Apollo 客户端向错误的 uri 发送请求

Graphql,react-apollo如何在加载组件状态时将变量传递给查询

Apollo GraphQL - 如何将 RxJS 主题用作 Apollo 客户端的变量?

如何将 redux 与 graphql 一起使用