Sails.js 帆';水线电子邮件验证始终失败

Sails.js 帆';水线电子邮件验证始终失败,sails.js,waterline,Sails.js,Waterline,我正在处理我的应用程序,一切正常,但在将系统重新安装到Windows10之后,我总是会遇到电子邮件验证失败的情况。我真的不认为这是因为Windows10,但这是唯一的改变 为了进行测试,我创建了新的闪亮模型: module.exports = { attributes: { email: { type: 'string', required: true, unique: true, email: true } } } 如果

我正在处理我的应用程序,一切正常,但在将系统重新安装到Windows10之后,我总是会遇到电子邮件验证失败的情况。我真的不认为这是因为Windows10,但这是唯一的改变

为了进行测试,我创建了新的闪亮模型:

module.exports = {
  attributes: {
    email: {
      type: 'string',
      required: true,
      unique: true,
      email: true
    }
  }
}
如果我用
sails控制台
启动应用程序并键入
TestModel.create({email:'alex@yahoo.com'}).exec(函数(err,created){console.log(err);console.log(created);})

错误(E_验证)::1属性无效 在WLValidationError.WLError(C:\Users\My name is Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\lib\waterline\error\WLError.js:26:15) 在新的WLValidationError(C:\Users\My name is Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\lib\waterline\error\WLValidationError.js:20:28) 在C:\Users\My name is Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\lib\waterline\query\validate.js:46:43 在AllValidationChecked(C:\Users\My name is Alex\AppData\Roaming\npm\node\U modules\sails\node\U modules\waterline\lib\waterline\core\validations.js:210:5) 在C:\Users\My name是Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\node\u modules\async\lib\async.js:49:16 完成时(C:\Users\My name is Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\node\u modules\async\lib\async.js:239:19) 在C:\Users\My name是Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\node\u modules\async\lib\async.js:40:16 在C:\Users\My name is Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\lib\waterline\core\validations.js:201:14 在C:\Users\My name是Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\node\u modules\async\lib\async.js:49:16 完成时(C:\Users\My name is Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\node\u modules\async\lib\async.js:239:19) 在C:\Users\My name是Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\node\u modules\async\lib\async.js:40:16 在C:\Users\My name是Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\lib\waterline\core\validations.js:164:64 在C:\Users\My name是Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\node\u modules\async\lib\async.js:162:20 在C:\Users\My name是Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\node\u modules\async\lib\async.js:230:13 在arrayEach(C:\Users\My name is Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\node\u modules\async\lib\async.js:81:9) 在每个(C:\Users\My name is Alex\AppData\Roaming\npm\node\u modules\sails\node\u modules\waterline\node\u modules\async\lib\async.js:72:13)

发送到TestModel的属性无效: •电子邮件 •“电子邮件”验证规则输入失败:'alex@yahoo.com"

如果我禁用电子邮件验证,一切正常

{ email: 'alex@yahoo.com',
  createdAt: '2015-08-08T21:09:25.118Z',
  updatedAt: '2015-08-08T21:09:25.118Z',
  id: 1 }
自己的电子邮件验证方法-不是好的解决方案


我尝试过一些琐碎的愚蠢的事情,比如重新安装数据库,但是没有帮助。对不起,我的英语不好,希望我能在这里找到答案。

我现在有一个奇怪的解决办法。我将属性类型更改为
'email'
,并删除了
email:true
类型

module.exports = {
  attributes: {
    email: {
      type: 'email',
      required: true,
      unique: true
    }
  }
};

现在它开始工作了。这对我来说没关系,但它没有被记录下来,我仍然想知道为什么默认方式不起作用。

我现在有一个奇怪的解决方案。我将属性类型更改为
'email'
,并删除了
email:true
类型

module.exports = {
  attributes: {
    email: {
      type: 'email',
      required: true,
      unique: true
    }
  }
};
现在它开始工作了。这对我来说没关系,但没有文档记录,我仍然想知道为什么默认方式不起作用。

根据:

验证直接在集合属性中定义。此外,您可以将属性类型设置为任何受支持的锚类型,Waterline将构建验证并将架构类型设置为该属性的字符串

因此,当您设置的类型不是水线类型时,您将使用它来验证其中一个验证中的类型,并将数据保留为字符串

因此,这样定义模式将起作用:

module.exports = {
  attributes: {
    email: {
      type: 'email',
      required: true,
      unique: true
    }
  }
};
根据:

验证直接在集合属性中定义。此外,您可以将属性类型设置为任何受支持的锚类型,Waterline将构建验证并将架构类型设置为该属性的字符串

因此,当您设置的类型不是水线类型时,您将使用它来验证其中一个验证中的类型,并将数据保留为字符串

因此,这样定义模式将起作用:

module.exports = {
  attributes: {
    email: {
      type: 'email',
      required: true,
      unique: true
    }
  }
};

显然,就是这样。是的,改变这种风格对我也有好处。谢谢显然,就是这样。是的,改变这种风格对我也有好处。谢谢如果您将来需要其他资源,这里有一个聊天室,用于sails.js、node.js和水线问题。如果您将来需要其他资源,这里有一个聊天室,用于sails.js、node.js和水线问题。