【发布时间】:2014-01-06 23:30:05
【问题描述】:
我正在使用 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。 Mongoose 是 3.8.2。
【问题讨论】: