Sequelize验证-是否可以按属性/字段进行Sequelize组错误?

时间:2018-06-19 21:48:09

标签: validation error-handling sequelize.js

Sequelize是我的新手,以前主要使用Yii2 ActiveRecord作为ORM。

关于Sequelize验证,目前我只收到以下格式的错误:-

"errors": [
    {
        "message": "notNull Violation: modelname.model_attribute cannot be null,",
    }
]

Sequelize是否有任何内部方法以下列格式返回错误?

"errors": [
    {
        "modelname": 
            {
                "model_attribute": ["cannot be null"]
            }
    }
]

我发现通过API调用处理表单错误等更为理智。

谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定是否使用相同的格式,但是对于自定义消息,请在您的模型中添加验证功能,如下所示:

battery_name: {
        type: DataTypes.STRING(66),
        allowNull: false,
        validate: {
          len: {
            args: [0, 60],
            msg: 'Some custom message'
          },
          notEmpty: {
            msg: 'Another custom message'
          }
        }
      }

此处有更多信息:https://sequelize.readthedocs.io/en/v3/docs/models-definition/#validations

此外,您可以像这样使用以下方法添加捕获以将错误分组:

SequelizeModel.create({}).then(() => { /* ... */ }).catch(Sequelize.ValidationError, e => {
   /* create logic to group/format/change default sequelize error */ 
})