在节点中使用阿波罗-(无反应)

时间:2020-10-19 13:34:09

标签: apollo apollo-client

我想使用apollo进行一些批处理更新。我需要从节点启动批处理脚本。 例如node myscript.js

我不知道该怎么做。是否有一个简单的示例可以执行入门上的描述:https://www.apollographql.com/docs/react/get-started/但没有反应?

(我的代码在使用react时工作正常)

2 个答案:

答案 0 :(得分:0)

首先,您需要创建一个apollo客户程序,以进行响应。

检查以下代码。


import { ApolloClient } from 'apollo-client';
import fetch from 'node-fetch';
import { createHttpLink } from 'apollo-link-http';
import { setContext } from 'apollo-link-context';
import { InMemoryCache } from 'apollo-cache-inmemory';
import config from './config';

const httpLink = createHttpLink({
  uri: `${config.apiUrl}/graphql`,
  fetch,
});

const authLink = setContext(() => {
  const token = config.serverToken;
  return {
    headers: {
      Authorization: token,
    },
  };
});

const client = new ApolloClient({
  link: authLink.concat(httpLink),
  cache: new InMemoryCache(),
});


export default client;

一旦客户端完成,您可以使用以下代码进行突变

import gql from 'graphql-tag';

const mutation = gql(`mutation {
    CreateTodo(
      data: {
        task: "${task}"
      }
    ) {
      id
      task
    }
  }`);

const response = await client.mutate({mutation});

您也可以类似地将其用于查询。我们正在使用节点获取来进行查询或更改。

让我知道是否有帮助。

答案 1 :(得分:0)

这是从节点上使用Apollo Client 3.x版与从React中使用它的方式

要从节点使用它,您必须从 @ apollo / client / core 导入,而从 @ apollo / client 导入 因此,在节点中初始化如下所示:

const STRAPIURI = "http://192.168.39.174:1337/graphql";
import fetch from 'cross-fetch';
import { ApolloClient, HttpLink, InMemoryCache } from '@apollo/client/core';

const apolloClient = new ApolloClient({
  link: new HttpLink({
    uri: `${STRAPIURI}`, fetch,
    credentials: 'same-origin', // Additional fetch() options like `credentials` or `headers`
  }),
  cache: new InMemoryCache()
});

您还需要从同一位置导入gql。

import { gql } from '@apollo/client/core';