0

ケースを考えてみましょう:

validatedSchema = new schema({
  id : "1454216545154",
  name: { type: Number, validate: [
    function(v){
      return (this.id !== Server.LoggedIn.ID);
    }, 'Don't try to change the name of another user!!!!'
  ]}
})

テスト用に完全なサーバーをまだセットアップしていませんが、計画段階にあります。

検証関数から兄弟要素にアクセスできますか?この場合は「id」変数と「external」変数ですか?もしそうなら、どのように?

ありがとうございました

4

1 に答える 1

1

いいえ、できません。しかし、ここであなたが探しているのは、とにかくORMレイヤーに属していないアクセス制御です。

ただし、本当にこれを実行したい場合は、保存前のミドルウェアを追加して、現在のユーザーが自分のレコードへの変更のみを保存できることを確認できます。

validatedSchema.pre('save', function (next) {
    if (this.id !== Server.LoggedIn.ID) {
        next(new Error("Can't change another user's data!"));
    } else {
        next();
    }
});
于 2013-02-22T14:43:01.540 に答える