【问题标题】:sailsjs: model email validation seems not to workSailsjs:模型电子邮件验证似乎不起作用
【发布时间】:2015-10-27 16:46:51
【问题描述】:

在全新的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'"
      }
    ]
  }
}

你们谁知道为什么?

【问题讨论】:

  • 你试过对@进行url编码吗? @ => %40
  • 嗯,它不起作用。同样的错误。

标签: validation email model sails.js


【解决方案1】:

我之前遇到过这种情况,但不太记得原因。

作为一种快速修复,您可以替换

email: { type: 'string', email: true }

与

email: { type: 'email' }

【讨论】:

  • 很有趣,但该类型没有正式记录:也许它会默认为其他类型?
  • 它有效,您是对的,甚至可以正确运行电子邮件验证。尽管如此,它还没有记录,所以我在徘徊它是否会被弃用,或者相反,也许这是新的方式,文档已经过时了..奇怪..
  • 好吧,我刚刚尝试了这两种语法,它们都运行良好。您使用的是什么 Waterline 和 Sails 版本?我正在使用 Sails 0.11.0 和 Waterline 0.10.23。
  • 帆 0.11.2。我不知道如何分辨水线的版本。不过我猜是最新的,因为它是全新的 Sails 应用程序安装。
  • 在挠了一阵头之后,我找到了documentation!从本质上讲,email 是string 的类型别名,它通过内置于sails 中的验证规则运行。
猜你喜欢
  • 1970-01-01
  • 2022-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
  • 2012-08-19
  • 2019-01-01
  • 2015-01-20
相关资源
最近更新 更多