12

私のマングースモデルには、stats時間に依存するものがいくつかあります。私の考えは、モデルがロードされた直後にこれらの統計を変更するミドルウェアを追加することです。

残念ながら、post-Hooksのドキュメントは少しわかりにくいです。次のようなフックを使用できるようです。

schema.post('init', function(doc) {
    doc.foo = 'bar';
    return doc;
});

それらの唯一の例はconsole.log-outputsを含みます。docを返す必要があるのか​​、ポストフックの変更がまったく不可能なのかについては、まったく説明されていません(非同期ではないため、複雑なアイデアはほとんど使用されない可能性があります)。

preオン'init'がロード時にモデルを自動的に更新する正しい方法ではない場合、それは何ですか?

4

1 に答える 1

21

これは、負荷時にモデルを更新し、非同期で動作する方法です。

schema.pre('init', function(next, data) {
  data.property = data.property || 'someDefault';
  next();
});

Pre-initは特別で、他のフックにはわずかに異なる署名があります。たとえば、pre-save:

schema.pre('save', function(next) {
  this.accessed_ts = Date.now();
  next();
});
于 2013-02-04T19:39:13.947 に答える