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