2014-05-17 71 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();函數應該在最後的執行中添加。