我需要从我的节点服务器向graphQL API发出请求。我正在使用的graphQL API将query
作为URL的查询参数,而不是请求的正文。它还不接受POST请求。我在将
const query = {
student(id: studentId) {
personal {
address
grade
etc {morestuff}
}
}
}
如何对此进行字符串化以作为queryParams发送?我已经尝试过querystring
模块querystring(query)
,但它返回的内容类似于student=
,仅此而已。我已经尝试过JSON.stringify,但是也没有成功。我需要以上内容,使其看起来像:
query=%7B%0A%20%20%20%20student(id%3A%20studentId)%20%7B%0A%20%20%20%20%20%20personal%20%7B%0A%20%20%20%20%20%20%20%20address%0A%20%20%20%20%20%20%20%20grade%0A%20%20%20%20%20%20%20%20etc%20%7Bmorestuff%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D
(我为此使用了在线编码器/解码器!)
我知道那里有GraphQL客户端库,但是我不确定是否要在服务器之间使用它们,我从浏览器/客户端中看到了它们。如果我应该使用客户端库,可以推荐一个(最好是轻量级的)支持GET请求的程序(我尝试的最后一个不支持-称为Prisma)
感谢您的帮助:)
答案 0 :(得分:1)
这对我有用,创建了一个函数:
function encode(query) {
return encodeURIComponent(query).replace(/'/g, "%27").replace(/"/g, "%22");
}
并通过:
const query = {
student(id: studentId) {
personal {
address
grade
etc {morestuff}
}
}
}
返回期望的结果。希望这对某人有帮助。