考虑这个案例:
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”变量吗?如果是这样,怎么样?
谢谢
答案 0 :(得分:1)
但如果您真的想这样做,可以添加预先保存middleware以检查当前用户是否只能将更改保存到自己的记录中:
validatedSchema.pre('save', function (next) {
if (this.id !== Server.LoggedIn.ID) {
next(new Error("Can't change another user's data!"));
} else {
next();
}
});