簡體   English   中英

如何修復Node.js http發布請求或處理錯誤以更有效地進行調試?

[英]How can I fix a Node.js http post request or handle errors to more efficiently debug?

我知道這個例子缺乏背景。 但是此請求返回此錯誤:

TypeError: Invalid data, chunk must be a string or buffer, not object

我認為這是基於data字段的原因,但我不確定。 此api返回JSON,因此我認為響應不是問題。 我最關心的是Node中更好的錯誤處理。 如果我確切知道錯誤的根源,我可以更快地解決此問題。 任何幫助,將不勝感激!

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)
          })
      })
    }
body += data

確保數據是字符串或緩沖區。 如有必要,可以強制轉換為它。

對於調試,如果您使用大量Promises,則可以使用裝飾器模式記錄有用的內容

由於options.data是字符串,請嘗試將標題中的Content-Type設置為text/html

如果您希望內容類型為application / json,請嘗試將options.data設置為json對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM