私はsails.jsを初めて使用しましたが、いくつかの作業の後にはbeforeValidate()
が使いにくいと感じています。sails.jsのbeforeValidate()のロジック
私はモデルUser
の2つの属性nickname
とage
しか持っていません。 両方の属性はrequired
とマークされているので、セイルは検証をチェックします。 ユーザーを作成する場合、クライアントはそのニックネームを指定しない場合、私は次のように、そこにランダムなニックネームを割り当てたい:
beforeValidate: function(user, next){
if (!user.nickname) user.nickname = randomString(5);
next();
}
帆がnickname
のrequired
タグを検証する前にこの割り当てが適用されるべきです、したがって、beforeValidate()
はそれを実行する唯一の合理的な場所のようです。また、悲しいことに、beforeValidate()
の引き金となります
User.update(user.id, {age: 40});
beforeValidate()
におけるパラメータuser
は今{age: 40}
であることから、新しいニックネームは、割り当てられ、元の1を交換されます。私は次のようにユーザの年齢を更新したいときしかし、 。
のbeforeValidate(user, callback)
は、指定した変更された属性だけでなく、変更された属性と変更されていない属性の両方の組み合わせ(古いID、古いニックネーム、新しい年齢のユーザーなど)を更新する必要があります。 User.update()
(例えば、{age: 40}
のみ)。
私は何かを誤解していますか?
I 'defaultTo'が関数であることがわかるので、私の目的を満たすことができますしかし、。しかし、私はまだ 'beforeValidate()'の 'user'パラメータが完全なユーザレコードではないことを知りたいと思います。 –