Javascript 如何修复Node.js http post请求或处理错误以更有效地进行调试?
我知道,这个例子缺乏一些背景知识。但此请求返回以下错误:Javascript 如何修复Node.js http post请求或处理错误以更有效地进行调试?,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我知道,这个例子缺乏一些背景知识。但此请求返回以下错误: TypeError: Invalid data, chunk must be a string or buffer, not object 我想这是因为数据字段的基础是什么,但我不能确定。这个api返回JSON,所以我认为响应不是问题所在。我最关心的是节点中更好的错误处理。如果我知道错误的罪魁祸首,我可以更快地解决这个问题。任何帮助都将不胜感激 Program.prototype.produceSomething = function(
TypeError: Invalid data, chunk must be a string or buffer, not object
我想这是因为数据
字段的基础是什么,但我不能确定。这个api返回JSON,所以我认为响应不是问题所在。我最关心的是节点中更好的错误处理。如果我知道错误的罪魁祸首,我可以更快地解决这个问题。任何帮助都将不胜感激
Program.prototype.produceSomething = function(){
const headers = {
'Authorization': 'API_KEY',
'Content-Type': 'application/json',
}
const options = {
url: 'SOME_API',
path: 'SOME_PATH',
method: 'POST',
data: 'dataString',
headers: headers,
};
let body = "";
return new Promise(function(resolve, reject){
let request = https.request(options,
function(response){
response.on('data', function(data){
body += data;
})
response.on('end', function(){
body = JSON.stringify(body)
resolve(body);
})
})
request.on('error', function(err){
reject(err)
})
})
}
确保数据是字符串或缓冲区。如有必要,你可以投它一票
对于调试,如果您使用了很多承诺,那么可以使用decorator模式来记录有用的内容,因为
选项。数据是一个字符串,请尝试将标题中的内容类型设置为文本/html
如果您希望内容类型为application/json,请尝试将options.data
设置为json对象。您从何处获得该错误?是request
抛出它,还是您试图发布到的端点?我很确定这就是请求,是的。如果删除该代码块,它将抛出一个未处理的promise错误。
body += data