Validation Sequelizejs-allowNull的自定义消息

Validation Sequelizejs-allowNull的自定义消息,validation,sequelize.js,Validation,Sequelize.js,如果我有一个模型用户: var User = sequelize.define('User', { name: { type: Sequelize.STRING, allowNull: false, validate: { notEmpty: { msg: 'not empty' } } }, nickname: { type: Sequelize.STRING } }); 当名称为null或未提供

如果我有一个模型用户:

var User = sequelize.define('User', {
  name: {
    type: Sequelize.STRING,
    allowNull: false,
    validate: {
      notEmpty: {
        msg: 'not empty'
      }
    }
  },
  nickname: {
    type: Sequelize.STRING
  }
});
当名称为null或未提供时,如何为指定消息

此代码:

User.create({}).complete(function (err, user) {
  console.log(err);
  console.log(user);
});
产生:

{ [SequelizeValidationError: Validation error]
  name: 'SequelizeValidationError',
  message: 'Validation error',
  errors: 
   [ { message: 'name cannot be null',
       type: 'notNull Violation',
       path: 'name',
       value: null } ] }
消息“name cannot be null”已生成,似乎不在我的控制之下

使用User.create({name:'})向我显示自定义消息“notempty”:

{ [SequelizeValidationError: Validation error]
  name: 'SequelizeValidationError',
  message: 'Validation error',
  errors: 
   [ { message: 'not empty',
       type: 'Validation error',
       path: 'name',
       value: 'not empty',
       __raw: 'not empty' } ] }
有没有办法为AllowFull提供消息


谢谢

不幸的是,当前未实现针对空验证错误的自定义消息。根据源代码,
notNull
验证被弃用,取而代之的是基于模式的验证,并且不允许自定义消息。在上有此功能的功能请求。作为一种解决方法,您可以捕获
续集.ValidationError
并插入一些包含消息的自定义代码

e、 g

User.create({}).then(function(){/*…*/}).catch(Sequelize.ValidationError,function(e){
var i;
对于(i=0;i
抱歉,忘了提到我正在使用sequelize 2.0.0-rc1
User.create({}).then(function () { /* ... */ }).catch(Sequelize.ValidationError, function (e) {
    var i;
    for (i = 0; i < e.errors.length; i++) {
      if (e.errors[i].type === 'notNull Violation') {
        // Depending on your structure replace with a reference
        // to the msg within your Model definition
        e.errors[i].message = 'not empty';
      }
    }
})