问题描述
- 服务器使用nodejs发送http请求调用云开发api报错
47001
//返回结果如下
{
errcode: 47001,
errmsg: 'data format error hint: [xxxxx]'
}
问题原因
- 请求格式设置不当,并不是query有误
问题解决
下面以databaseUpdate为例
- 请求url为
https://api.weixin.qq.com/tcb/databaseupdate?access_token=ACCESS_TOKEN
,请求方式为POST
因此你需要将http请求设置为POST方法
,并且需要拼接ACCESS_TOKEN
到url上,还要注意不需要再额外在body里传入ACCESS_TOKEN
- 设置
headers
中的Content-Type
为application/json; charset=utf-8
,body直接传入对象注意不用JSON序列化。
示例请求代码
let ACCESS_TOKEN = "xxxxxxxx"
let requestBody = {
url: `https://api.weixin.qq.com/tcb/databaseupdate?access_token=${ACCESS_TOKEN}`,
json: true, //将返回值转为JSON对象
method: "POST",
headers: {
"Content-Type": "application/json; charset=utf-8",
},
body: {
env: "xxx-xxx",
query: "你的数据库操作语句",
}
}
request.post(requestBody, (err,res,body)=>{
console.log(body)
})