Validation 在环回中更改用户默认验证
我正在开发一个环回应用程序,将基本Validation 在环回中更改用户默认验证,validation,loopbackjs,Validation,Loopbackjs,我正在开发一个环回应用程序,将基本用户模型扩展到用户代码模型,其中每个用户都由电子邮件加上代码字段标识 因此,用户可以使用不同的代码两次注册同一封电子邮件 我在第691行的节点模块/loopback/common/models/user.js中看到: UserModel.validatesUniquenessOf('email', {message: 'Email already exists'}); 我想删除此限制/验证,但当然不更改环回代码 我怎么做? 也许在启动脚本中,我可以循环执行所有
用户
模型扩展到用户代码
模型,其中每个用户都由电子邮件
加上代码
字段标识
因此,用户可以使用不同的代码两次注册同一封电子邮件
我在第691行的节点模块/loopback/common/models/user.js中看到:
UserModel.validatesUniquenessOf('email', {message: 'Email already exists'});
我想删除此限制/验证,但当然不更改环回代码
我怎么做?
也许在启动脚本中,我可以循环执行所有验证并删除此验证?找到了答案
在这种情况下,您需要删除用户模型设置的默认验证
common/models/userCode.js
您还可以使用required:true | false
属性使任何默认定义的属性成为required或not
common/models/userCode.json
以下代码将删除所有电子邮件验证:
module.exports = function(UserCode){
//Add this line and it will start receiving multiple email.
delete UserCode.validations.email;
}
相反,要有选择性地做如下事情:
module.exports = function(UserCode){
// remove ONLY email uniqueness validation
UserCode.validations.email = UserCode.validations.email.reduce((all, one) => {
if (one.validation !== 'uniqueness') {
all.push(one);
}
return all;
}, []);
}
@现在检查答案。我编辑过。是的,我也找到了类似的解决方案。。不仅删除所有验证,而且删除唯一性。。使用切片
。。还有更好的办法吗?@nkint现在。我想那是唯一的办法。关于这个问题一直在进行讨论。
module.exports = function(UserCode){
//Add this line and it will start receiving multiple email.
delete UserCode.validations.email;
}
module.exports = function(UserCode){
// remove ONLY email uniqueness validation
UserCode.validations.email = UserCode.validations.email.reduce((all, one) => {
if (one.validation !== 'uniqueness') {
all.push(one);
}
return all;
}, []);
}