0
我正在使用express和mongoose。當我使用mocha測試來運行此端點時,我有一個奇怪的問題。使用貓鼬和異步時快速響應不起作用
exports.broadcastMessages = function(req, res, next) {
User.find({}, function(err, users) {
if(err) return next(err);
var push = function(user, callback) {
user.messages.push(req.body.message);
user.save(function(err) {
callback(err);
});
};
var fin = function(err) {
if (err) {
return next(err);
}
console.log('aaaaaaaaaa');
return res.send('ok');
};
async.each(users, push, fin);
});
};
然後我得到一個超時錯誤。只有一個用戶。所以這不是時間問題。我確信res.send('ok')被調用。但是當我刪除user.save()。它的工作...
exports.broadcastMessages = function(req, res, next) {
User.find({}, function(err, users) {
if(err) return next(err);
var push = function(user, callback) {
user.messages.push(req.body.message);
callback(err);
};
var fin = function(err) {
if (err) {
return next(err);
}
console.log('aaaaaaaaaa');
return res.send('ok');
};
async.each(users, push, fin);
});
};
我不知道爲什麼。爲什麼添加一個user.save()它不起作用? res.send被調用,但沒有響應。
express的版本是3.4.7。貓鼬是3.8.2。
哦,是的,哈哈我忘了打電話在摩卡測試中完成()。非常感謝! –