Validation 模型电子邮件验证似乎不起作用
在全新的sailsjs安装中,我有一个定义如下的测试模型:Validation 模型电子邮件验证似乎不起作用,validation,email,model,sails.js,Validation,Email,Model,Sails.js,在全新的sailsjs安装中,我有一个定义如下的测试模型: module.exports = { attributes: { username:{ type:'string' } ,email:{ type:'string' ,email:true } } }; 如果我导航到这个: http://localhost:1337/user/create?username=stratboy1&email=test@w
module.exports = {
attributes: {
username:{
type:'string'
}
,email:{
type:'string'
,email:true
}
}
};
如果我导航到这个:
http://localhost:1337/user/create?username=stratboy1&email=test@wow.com
我得到这个错误:
{
"error": "E_VALIDATION",
"status": 400,
"summary": "1 attribute is invalid",
"model": "User",
"invalidAttributes": {
"email": [
{
"rule": "email",
"message": "\"email\" validation rule failed for input: 'test@wow.com'"
}
]
}
}
你们有谁知道为什么吗?我之前遇到过这个问题,但不太记得原因 作为快速修复,您可以替换
email: { type: 'string', email: true }
与
您是否尝试过对
@
进行url编码<代码>@=>%40Mmm它不工作。非常相同的错误。很有趣,但这种类型并没有正式的文档记录:也许它会默认为其他类型?它可以工作,您是对的,甚至可以正确运行电子邮件验证。尽管如此,它还没有文档记录,所以我想知道它是否会被弃用,或者相反,也许是新的方式,文档已经过时了。。奇怪..好吧,我只是尝试了两种语法,它们都很好用。您使用的是什么水线和帆船版本?我用的是帆0.11.0和水线0.10.23,帆0.11.2。我不知道如何说出waterline的版本。不过我猜是最新的一款,因为它是一款全新的sails应用程序安装。我搔了一会儿脑袋,才找到了解决这个问题的方法!本质上,email
是string
的类型别名,它通过sails中内置的验证规则运行。
email: { type: 'email' }