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”和“外部”变量吗?如果是这样,怎么办?

谢谢

4

1 回答 1

1

不,你不能。但是您在这里要做的是真正的访问控制,它无论如何都不属于您的 ORM 层。

但是如果你真的想这样做,你可以添加 pre-save中间件来检查当前用户是否只能将更改保存到他们自己的记录中:

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 回答