Sails的Waterline电子邮件验证总是失败

Ale*_*der 1 sails.js waterline

我正在处理我的应用程序,一切正常,但在将系统重新安装到Windows 10后,我总是有一个电子邮件验证失败.我真的不认为这是因为Windows 10,但它只是改变了.

为了测试我创造了新的闪亮模型:

module.exports = {
  attributes: {
    email: {
      type: 'string',
      required: true,
      unique: true,
      email: true
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我开始使用应用程序sails console并键入TestModel.create({ email: 'alex@yahoo.com' }).exec(function(err, created) { console.log(err); console.log(created); })我会得到这样的东西:

错误(E_VALIDATION):: 1属性在WLValidationError.WLError无效(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline\lib\waterline\error\WLError.js:26 :15)在C:\ Users处新的WLValidationError(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline\lib\waterline\error\WLValidationError.js:20:28) \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline\lib\waterline\query\validate.js:46:43 at allValidationsChecked(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline\lib\waterline\core\validations.js:210:5)在C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:49:16完成(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:239:19)at C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:40:16 at C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline\lib\waterline\core\validations.js:201:14在C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:49:16完成(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:239:19)在C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:40:16 at C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline\lib\waterline\core\validations.js:164:64 at C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:162:20 at C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:230:13在_arrayEach(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:81: 9)at _each(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:72:13)\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:162:20 at C:\ Users \我的名字是Alex\AppData\Roaming\_pmrayEach中的npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:230:13(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:81:9)at_each(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js :72:13)\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:162:20 at C:\ Users \我的名字是Alex\AppData\Roaming\_pmrayEach中的npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:230:13(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:81:9)at_each(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js :72:13)js:81:9)在_each(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_modules\async\lib\async.js:72:13)js:81:9)在_each(C:\ Users \我的名字是Alex\AppData\Roaming \npm \node_modules\sails \node_modules\waterline \node_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 }
Run Code Online (Sandbox Code Playgroud)

自己的电子邮件验证方法 - 不是很好的解决方案.

我试过像数据库重新安装这样琐碎的蠢事,但它没有帮助.抱歉我的英文不好,希望我能在这里找到答案.

Ale*_*der 7

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

module.exports = {
  attributes: {
    email: {
      type: 'email',
      required: true,
      unique: true
    }
  }
};
Run Code Online (Sandbox Code Playgroud)

现在它有效.它对我来说没问题,但它没有记录,我仍然想知道为什么默认方式不起作用.