阿波罗GraphQL。从服务器上调用突变?

问题描述 投票:0回答:1

我需要从服务器上运行的cron作业中调用一个突变。我发现了这个SO的帖子,但公认的答案是没有办法做到。

然后我在GitHub上找到了这个,从2017年开始。:

graphql-server是graphql核心函数的网络封装器。如果你不想在网络上使用它,你可以单独运行它。

   import scheme from './scheme';

   const query = `{
    me {
    name   
   } }`;

const result = graphql(scheme, query); console.log(result); 

函数文档可以找到 此处

这看起来很不错! 这是2020年的最佳实践方法吗?

graphql apollo apollo-server
1个回答
1
投票

是的,如果你能访问 GraphQLSchema 对象,那么最简单的方法就是在GraphQL服务器上使用 图形语言 的函数导出的。graphql 模块。注意,你应该等待返回的Promise来访问结果。

async function run () {
  const { data, errors } = await graphql(
    schema, 
    query,
    rootValue,
    context,
    variables
  )
}

然而,你也可以通过网络向服务器本身发出请求 -- 如果服务器在同一台主机上,你只需使用 localhost127.0.0.1. 在这种情况下,你可以使用 axios, request 或任何其他HTTP客户端库的Node.js脚本。您也可以只使用 curl 来直接在bash脚本或curl命令中进行请求。


0
投票

我也是刚刚发现这个方法。可以直接在服务器上创建一个Apollo客户端。

export const getApolloServerClient = () =>

  new ApolloClient({

    ssrMode: true,

    cache: new InMemoryCache(),

    link: new SchemaLink({ schema }),

  });
© www.soinside.com 2019 - 2024. All rights reserved.