Sequelize验证抛出[对象对象]错误

时间:2017-06-02 02:41:03

标签: node.js sequelize.js

我正在尝试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,则错误消失。

1 个答案:

答案 0 :(得分:0)

我找到了答案,我在这里发帖,以防这对任何人都有帮助。

将此行console.log('Error encountered: ' + err.message)更改为仅console.log(err),可以在控制台上正确显示错误消息。

字符串连接可防止显示错误消息(仅允许显示[object Object])。

有了错误消息,问题变得很明显不推荐使用验证notNull ,应该用列属性allowNull替换(注意这是列属性,而不是验证者)