Node JS – Supertest – 发送响应时获取ECONNRESET

我们想用supertest来testing我们的节点服务器,但是我们面临着现在的问题。

为了综合这个问题,下面的代码:

var express = require("express"); var request = require("supertest") var app = express(); app.post('/test_multipart', function(req, res, next){ res.status(200).send("ok") }) var supertest = request(app); function test(){ supertest .post('/test_multipart') .field("pseudo", "test") .attach('pdf_file', 'test.pdf') .end(function(err, res){ console.log(err) console.log(res) }) } test(); 

引发以下控制台日志:

 { [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read', response: undefined } undefined 

所以,这意味着资源在我们发送它的时刻到超时正在接收的时刻之间变得不确定。 这可能是由于我们在所有请求被读取之前发送了响应。 但是我们确切地希望在请求结束之前发送响应。 我们无法确定这是一个超级bug还是一个预期的行为,如果是这样,如何pipe理它…也许,有人知道吗?