Validation 模型电子邮件验证似乎不起作用

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

在全新的sailsjs安装中,我有一个定义如下的测试模型:

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' }