3

Sails.js モデルを作成するとします。このモデルは、投稿時に (通常どおり) DB に保存する必要がある場合と、そうでない場合があります。モデル ライフサイクル コールバックでこのロジックを実行できますか?

基本的に、next() を呼び出して通常どおり続行するか、next(err) を呼び出してエラーを発生させるかの 2 つの方法しかありません。他のオプションはありますか?コールバック内から req/res オブジェクトにアクセスすることは何とか可能でしょうか?

module.exports = {

  attributes: {
  },

  // Lifecycle Callbacks
  beforeCreate: function(values, next) {
    //analyze values

    if (someCondition) {
      //now we realize that we don't want the model to be created
      //we need perform some other stuff and respond with some custom answer
      //how do we do that?
    } else {
      next();
    }
  }
};
4

1 に答える 1

4

それがコントローラーの仕事です。req/res オブジェクトをモデルに持ち込む必要はありません。レコードを作成する必要があるかどうか、またはコントローラー メソッドに属していないかどうかを確認するためのチェック。Model.create() が呼び出されるまでに、それを作成するかどうかはすでにわかっているはずです。ブループリントを使用したり、コードの繰り返しを減らしたい場合は、ポリシー (ミドルウェア) を使用してルートにアタッチし、Model.create() が呼び出される前にチェックを行うことができます。

于 2013-08-11T22:00:30.597 に答える