Node Fetch Post 使用 Graphql 查询请求
Node Fetch Post Request using Graphql Query
我正在尝试使用 GraphQL 查询发出 POST 请求,但它返回错误 Must provide query string
,即使我的请求在 PostMan 中有效。
这是我在 PostMan 中的 运行 方式:
这是我在我的应用程序中 运行 的代码:
const url = `http://localhost:3000/graphql`;
return fetch(url, {
method: 'POST',
Accept: 'api_version=2',
'Content-Type': 'application/graphql',
body: `
{
users(name: "Thomas") {
firstName
lastName
}
}
`
})
.then(response => response.json())
.then(data => {
console.log('Here is the data: ', data);
...
});
知道我做错了什么吗?是否有可能使我通过 fetch
请求传递的 body 属性被格式化为 Text
就像我在 PostMan 请求的正文中指定的那样?
正文应包含 query
属性,其中包含查询字符串。还可以传递另一个 variable
属性,以便为查询提交 GraphQL 变量。
这应该适用于您的情况:
const url = `http://localhost:3000/graphql`;
const query = `
{
users(name: "Thomas") {
firstName
lastName
}
}
`
return fetch(url, {
method: 'POST',
Header: {
'Content-Type': 'application/graphql'
}
body: query
})
.then(response => response.json())
.then(data => {
console.log('Here is the data: ', data);
...
});
这是提交 GraphQL 变量的方法:
const query = `
query movies($first: Int!) {
allMovies(first: $first) {
title
}
}
`
const variables = {
first: 3
}
return fetch('https://api.graph.cool/simple/v1/cixos23120m0n0173veiiwrjr', {
method: 'post',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({query, variables})
})
.then(response => response.json())
.then(data => {
return data
})
.catch((e) => {
console.log(e)
})
我正在尝试使用 GraphQL 查询发出 POST 请求,但它返回错误 Must provide query string
,即使我的请求在 PostMan 中有效。
这是我在 PostMan 中的 运行 方式:
这是我在我的应用程序中 运行 的代码:
const url = `http://localhost:3000/graphql`;
return fetch(url, {
method: 'POST',
Accept: 'api_version=2',
'Content-Type': 'application/graphql',
body: `
{
users(name: "Thomas") {
firstName
lastName
}
}
`
})
.then(response => response.json())
.then(data => {
console.log('Here is the data: ', data);
...
});
知道我做错了什么吗?是否有可能使我通过 fetch
请求传递的 body 属性被格式化为 Text
就像我在 PostMan 请求的正文中指定的那样?
正文应包含 query
属性,其中包含查询字符串。还可以传递另一个 variable
属性,以便为查询提交 GraphQL 变量。
这应该适用于您的情况:
const url = `http://localhost:3000/graphql`;
const query = `
{
users(name: "Thomas") {
firstName
lastName
}
}
`
return fetch(url, {
method: 'POST',
Header: {
'Content-Type': 'application/graphql'
}
body: query
})
.then(response => response.json())
.then(data => {
console.log('Here is the data: ', data);
...
});
这是提交 GraphQL 变量的方法:
const query = `
query movies($first: Int!) {
allMovies(first: $first) {
title
}
}
`
const variables = {
first: 3
}
return fetch('https://api.graph.cool/simple/v1/cixos23120m0n0173veiiwrjr', {
method: 'post',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({query, variables})
})
.then(response => response.json())
.then(data => {
return data
})
.catch((e) => {
console.log(e)
})