我想使用apollo进行一些批处理更新。我需要从节点启动批处理脚本。
例如node myscript.js
我不知道该怎么做。是否有一个简单的示例可以执行入门上的描述:https://www.apollographql.com/docs/react/get-started/但没有反应?
(我的代码在使用react时工作正常)
答案 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';