【发布时间】:2015-02-02 03:42:48
【问题描述】:
我正在尝试将 mongoose 与异步一起使用,大部分情况下一切正常...但是当我执行不返回任何结果的查找时,我的应用程序似乎挂起并最终超时。
这是一些示例控制器代码,它使用 mongoose 和 async 按 id 进行简单查找:
module.exports.find = function(req, res) {
async.waterfall([
function(next) {
SomeModel.findById(req.params.id, next);
},
function(someModel, next) {
if (!SomeModel) {
res.status(404).json({
success: false,
message: 'SomeModel not found'
});
} else {
res.json(SomeModel);
}
}
]);
};
如果找到一条记录,一切都会恢复正常,但是对于不存在的 id,似乎永远不会调用第二个异步步骤,最终整个请求都会超时。
那么我在这里做错了什么?即使没有找到记录,如何让 'findById' 方法调用 'next'?
【问题讨论】:
标签: javascript node.js mongodb asynchronous