2017-01-25 12 views
0

リクエストクエリパラメータとしてのフラグに基づいて、post saveフックにいくつかのコードを実行したいとします。この変数をコールバック関数でどのように読むことができますか?私は後でそれを参照できるスキーマまたはオブジェクトに何らかの形でそれを設定できますか?Mongodb:フラグに基づいたフック保存フック

router.js

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


またはドキュメントメソッドとして定義:

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

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

答えて

0

任意の文書では、スキーマ方法あなたができるようを通じてスキーマへのアクセス権を持っていますすべてのドキュメントでこの方法にアクセスできます:

model.jsルーターで

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

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

、その後:

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

私は、これは正しい答えたことを望む、私たちは 'リクエストごとにmySavePost'を呼び出すことはできません。すべての 'post'呼び出しに対して新しいフックがスキーマに追加され、すべてのフックが呼び出されます。すべての履歴reqオブジェクト – sidgate

関連する問題