使用Sequelize.js自定义validation错误

可以从中自定义错误

Sequelize.ValidationError

模型:

var PaymentType = sequelize.define('payment_type' , { id: { type: DataTypes.INTEGER(11), allowNull: false, primaryKey: true, autoIncrement: true, field: 'id' }, code: { type: DataTypes.STRING, allowNull: false, validate:{ notEmpty: true }, field: 'code' }, name: { type: DataTypes.STRING, allowNull: false, validate:{ notEmpty: true }, field: 'name' } }, { timestamps: true, paranoid: false, underscored: true, freezeTableName: true, tableName: 'payment_types' }); 

我的控制器:

  update(req, res) { paymentType .update(req.body, { where: { id: req.params.id } }) .then( updatedRecords => { res.status(200).json(updatedRecords); }) .catch(Sequelize.ValidationError, error => { res.status(400).json(error); }) .catch( error => { res.status(500).json(error); }); }, 

我得到的错误是这样的:

 { "name": "SequelizeValidationError", "message": "Validation error: Validation notEmpty failed", "errors": [ { "message": "Validation notEmpty failed", "type": "Validation error", "path": "name", "value": {}, "__raw": {} } ] } 

我想传递这样的错误(只有path和消息):

 { "name":"The field cannot be empty", "other_field":"custom error message" } 

我不知道是否可以在模型中指定自定义消息,或者我必须创build一个函数来构build错误消息。

如果我必须build立一个函数,我该如何提取path并自定义消息。

提前致谢