2014-05-17 4 views
1

J'utilise express js et angulaire js, mais j'ai trouvé que la méthode findOne ne se terminera pas.Mongo db findOne requête ne s'arrêtera pas

Pour chaque demande, la fonction de back-end obtiendra le obj avant de faire des choses 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(); 
    }); 
}; 

puis arriver à la détruire:

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

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

mais il ne sera jamais entrer dans la détruire portée car il continue à courir sans fin dans les exportations.

l'opération de chargement est en fait comme ceci:

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

quand je modifie à:

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

il a fait la même chose avec la course sans fin ... s'il vous plaît aider

Répondre

0

J'ai trouvé que le prochain(); La fonction devrait être ajoutée dans la dernière exécution.