如何解决在节点中使用阿波罗-无反应
我想使用apollo进行一些批处理更新。我需要从节点启动批处理脚本。
例如node myscript.js
我不知道该怎么做。是否有一个简单的示例可以执行入门上的描述:https://www.apollographql.com/docs/react/get-started/但没有反应?
(我的代码在使用react时工作正常)
解决方法
首先,您需要创建一个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});
您也可以类似地将其用于查询。我们正在使用节点获取来进行查询或更改。
让我知道是否有帮助。
,这是从节点上使用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}`,credentials: 'same-origin',// Additional fetch() options like `credentials` or `headers`
}),cache: new InMemoryCache()
});
您还需要从同一位置导入gql。
import { gql } from '@apollo/client/core';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。