我的前端是localhost:3000
,GraphQL服务器是localhost:3333
。
我已经使用react-apollo在JSX环境中查询/变异,但是还没有从Express进行查询/变异。
我想在这里在我的server.js
中进行查询/变异操作。
server.get('/auth/github/callback', (req, res) => {
// send GraphQL mutation to add new user
});
以下似乎是正确的方向,但我得到了TypeError: ApolloClient is not a constructor
错误:
const express = require('express');
const next = require('next');
const ApolloClient = require('apollo-boost');
const gql = require('graphql-tag');
// setup
const client = new ApolloClient({
uri: 'http://localhost:3333/graphql'
});
const app = next({dev});
const handle = app.getRequestHandler();
app
.prepare()
.then(() => {
const server = express();
server.get('/auth/github/callback', (req, res) => {
// GraphQL mutation
client.query({
query: gql`
mutation ADD_GITHUB_USER {
signInUpGithub(
email: "email@address.com"
githubAccount: "githubusername"
githubToken: "89qwrui234nf0"
) {
id
email
githubToken
githubAccount
}
}
`,
})
.then(data => console.log(data))
.catch(error => console.error(error));
});
server.listen(3333, err => {
if (err) throw err;
console.log(`Ready on http://localhost:3333`);
});
})
.catch(ex => {
console.error(ex.stack);
process.exit(1);
});
这篇文章提到了Apollo作为解决方案,但没有给出示例。
我该如何从Express服务器:3000
调用GraphQL变异到GraphQL :3333
?
react-apollo
(React端...),但是现在你不知道如何从React中查询?我不太明白。 - JV Lobo