我有一个GraphQL的问题。我想发送axios.post请求到我的服务器。我可以在 Postman :
{
"query":"mutation{updateUserCity(userID: 2, city:\"test\"){id name age city knowledge{language frameworks}}} "
}
在图形中:
mutation {
updateUserCity(userID: 2, city: "test") {
id
name
age
city
knowledge {
language
frameworks
}
}
}
但在我的代码中却无法做到:((以下是我的代码片段:
const data = await axios.post(API_URL, {
query: mutation updateUserCity(${ id }: Int!, ${ city }: String!) {
updateUserCity(userID: ${ id }, city: ${ city }){
id
name
age
city
knowledge{
language
frameworks
}
}
}
}, {
headers: {
'Content-Type': 'application/json'
}
})
我的代码出了什么问题?
6条答案
按热度按时间monwx1rj1#
要在请求中传递的
query
参数的值必须是字符串,并且传递给GraphQL查询的变量的名称应以$
为前缀。您在请求中对变量使用了字符串文字。此外,可以使用variables
键在后请求中传递变量。将您的代码更改为如下所示的代码应该可以使其正常工作:
umuewwlo2#
我喜欢使用下面的语法,它类似于公认的答案,但更明确。
注意,
variables
对象嵌套在data
对象内,并且是query
对象的兄弟。yjghlzjz3#
我想与您分享我的简单工作示例
m528fe3b4#
对于WordPress GQL https://docs.wpgraphql.com/getting-started/posts/这似乎为我工作在这一刻与Nuxt
},
oyt4ldly5#
看起来你试图将变量传递到查询中。除非我错了,否则你在axios调用中的内容和其他的是不同的。
我相信这应该可以工作,假设在调用之前定义了变量
id
和city
。xfyts7mz6#
像这样传递数据
常量电子邮件=“test@gmail.com“;常量密码=“123”;
常量数据aa =等待axios.post(API_URL.登录,{查询:
query{ login( email:"${email}", password:"${password}" ) { userId token } }
,});