节点套接字挂起http错误

我跟着节点的http文件写一个删除请求到本地服务器,但收到套接字挂断错误,类似的问题,我检查了:

  • NodeJS – “套接字挂断”究竟是什么意思?

  • 错误:套接字使用节点v0.12.0挂起

    但没有人真正为我的情况工作。

我相信这是代码错误,因为我使用邮递员它为我工作,以下是我的代码

var options = { hostname: 'localhost', port: 3000, path: '/accounts/abc' method: 'DELETE', headers: { 'Content-Type': 'application/json; charset=utf-8' } }; var order = { "secret": "abc_secret" }; var content = JSON.stringify(order); var req = http.request(options, function(res) { console.log('STATUS: ' + res.statusCode); res.on('data', function(chunk) { console.log('resp: ' + chunk); }); }); req.on('error', function(err) { console.error('error: ' , err.stack.split("\n")); }); req.write(content); req.end(); 

错误是:

 error: [ 'Error: socket hang up', ' at createHangUpError (_http_client.js:215:15)', ' at TLSSocket.socketOnEnd (_http_client.js:300:23)', ' at TLSSocket.emit (events.js:129:20)', ' at _stream_readable.js:908:16', ' at process._tickCallback (node.js:355:11)' ] 

显然,请求头没有内容长度。 因此,无论你在写函数中写什么都将被忽略。 希望这是根本原因。

对我来说 – 通过添加Content-Length头来解决。

  headers: { 'Content-Type': 'application/json; charset=utf-8', 'Content-Length': Buffer.byteLength(JSON.stringify(order)) }