2017-01-25 1 views
0

Ich möchte einige Code in post save Hook basierend auf einem Flag, das als Anfrage Abfrageparameter kommt. Wie kann ich diese Variable in der Callback-Funktion lesen? Kann ich es irgendwie auf das Schema oder das Objekt setzen, auf das ich mich später beziehen kann?Mongodb: Feuer Beitrag speichern Haken basierend auf einer Flagge

var User = new Schema({...}); 

User.post('save', function(callback){ 
    if(someFlag){ 
     ...... 
    } 
}); 

Antwort

0

Jedes Dokument, haben Zugang zu seinem Schema durch Schema Methode, so dass Sie könnte:

router.js

router 
    .route('/') 
    .get(function(req, res) { 
     var user = new User(); 
     user.schema.post('save', function() { 
     var flag = req.query.flag; 
     // ... 
     }); 
     user.save(); 
    }); 


Oder es als Dokument Methode definieren Jedes Dokument hat Zugriff auf diese Methode:

model.js

var User = new Schema({...}); 

User.methods.mySavePost = function(req, res) { 
    this.schema.post('save', function() { 
    var flag = req.query.flag; 
    // ... 
    }); 
} 

und dann in Ihrem Router:

router 
    .route('/') 
    .get(function(req, res) { 
     var user = new User(); 
     // register your post save hook 
     user.mySavePost(req, res); 
     user.save(function(err) { 
     // this will call after your mySavePost method hook 
     }); 
    }) 
+0

Ich wünschte, das die richtige Antwort war, können wir rufen 'mySavePost' für jede Anforderung nicht. Für jeden Post-Aufruf wird ein neuer Hook zum Schema hinzugefügt und alle Hooks werden mit allen historischen req-Objekten aufgerufen – sidgate

Verwandte Themen