我正在尝试Sequelize的内置验证器。型号定义:
module.exports = function(sequelize, DataTypes) {
var Device = sequelize.define('Device', {
model_name: {
type: DataTypes.STRING,
validate: {
notNull: {
args: true,
msg: 'Model name needed'
}
}
}
...
bulkCreate
Device.bulkCreate(csvOutput, { validate: true })
.then(function() {
console.log('Records inserted into database')
})
.catch(function(err) {
console.log('Error encountered: ' + err.message)
})
为了测试,我尝试为model_name
插入一个空白字段。我还尝试包含一个合适的型号名称。
上述两种情况都会产生一个简单的[object Object]
错误。我似乎无法弄明白为什么。希望有人能在这里阐明一些亮点!
注意:如果我完全从模型中删除validate
,则错误消失。
答案 0 :(得分:0)
我找到了答案,我在这里发帖,以防这对任何人都有帮助。
将此行console.log('Error encountered: ' + err.message)
更改为仅console.log(err)
,可以在控制台上正确显示错误消息。
字符串连接可防止显示错误消息(仅允许显示[object Object]
)。
有了错误消息,问题变得很明显不推荐使用验证notNull
,应该用列属性allowNull
替换(注意这是列属性,而不是验证者)