我正在尝试为我的应用程序编写一个测试,在那里我使用express-brute来防止暴力攻击。
我有以下测试:
it('should return 429 status after 1000 attempts', function (done) {
this.timeout(5000);
var counter = 0;
var makeRequest = function (count, done) {
counter++;
request(app)
.post('/login')
.send({ username: 'a+' + count + '@b.com', password: 'wrong' + count })
.end(function (err, res) {
if (err) {
console.log('failed request #', counter);
return done(err);
}
if (counter < 1001) {
makeRequest(counter, done);
}
else {
res.header.location.should.equal('/account/login');
res.statusCode.should.equal(429);
done();
}
});
}
makeRequest(counter, done);
});
哪个会引发错误:
错误:套接字挂断有时是错误:读取ECONNRESET
它总是围绕连接#225
相同的测试(只有 20 个左右的请求)工作正常(如果我更改我的 express-brute 配置)
是什么导致它出错?
我没有正确关闭/处理连接吗?