2014-05-17 72 views
1

我使用express js和angular js,但是我发现findOne方法不会结束。Mongo db findOne查询不会停止

对于每一个请求,后端功能将得到obj的第一个执行CURD东西之前:

exports.article = function(req, res, next, id) { 

    Article.load(id, function(err, article) { 
     if (err) return next(err); 
     if (!article) return next(new Error('Failed to load article ' + id)); 
     req.article = article; 
     next(); 
    }); 
}; 

,然后去破坏它:

exports.destroy = function(req, res) { 
    var article = req.article; 

    article.remove(function(err) { 
... 

,但它永远不会进入破坏范围因为它在exports.article中保持无尽的运行。

负载操作实际上是这样的:

ArticleSchema.statics.load = function(id, cb) { 
    this.findOne({ 
     _id: id 
    }).populate('user', 'name username').exec(cb); 
}; 

当我将它修改为:

exports.team = function(req, res, next, id) { 
    req.team = Team.findOne({_id: id}); 
}; 

它确实无尽的运行相同......请帮助

回答

0

我发现那next();函数应该在最后的执行中添加。