Mongoose验证访问兄弟姐妹

时间:2013-02-22 10:07:35

标签: javascript json node.js mongodb mongoose

考虑这个案例:

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

谢谢

1 个答案:

答案 0 :(得分:1)

不,你不能。但是你要做的就是访问控制,它不属于你的ORM层。

但如果您真的想这样做,可以添加预先保存middleware以检查当前用户是否只能将更改保存到自己的记录中:

validatedSchema.pre('save', function (next) {
    if (this.id !== Server.LoggedIn.ID) {
        next(new Error("Can't change another user's data!"));
    } else {
        next();
    }
});