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