我正在尝试在我的 Sequelize 模型中实现验证。模型定义如下
var model = sequelize.define('Model', {
from: {
type: DataTypes.STRING,
allowNull: false,
validate: {
isEmail: true
}
}
}
然后我正在尝试构建一个实例并对其进行验证:
var m = Model.build({ from: 'obviously not a email' });
var err = m.validate();
但如果我执行 console.log(err)
,我只会得到 { fct: [Function] }
。定义引发异常的自定义验证器会导致未处理的异常。
我应该如何正确使用validate()
?
最佳答案
以下是使用 Sequelize v2.0.0
解决问题的方法:
var Sequelize = require("sequelize")
, sequelize = new Sequelize("sequelize_test", "root")
var Model = sequelize.define('Model', {
from: {
type: Sequelize.STRING,
allowNull: false,
validate: {
isEmail: true
}
}
})
Model.sync().success(function() {
Model.build({ from: "foo@bar" }).validate().success(function(errors) {
console.log(errors)
})
})
这将导致:
{ from: [ 'Invalid email' ] }
旁注:您也可以跳过 validate
调用并直接创建实例:
Model.sync().success(function() {
Model
.create({ from: "foo@bar" })
.success(function() {
console.log('ok')
})
.error(function(errors) {
console.log(errors)
})
})
error 方法将收到与前面代码片段中完全相同的错误对象。
您好, sdepold。
关于node.js - 无法使 Sequelize 验证工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17253052/