Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 使用sequelize编辑对象时,如何验证唯一字段_Validation_Sequelize.js - Fatal编程技术网

Validation 使用sequelize编辑对象时,如何验证唯一字段

Validation 使用sequelize编辑对象时,如何验证唯一字段,validation,sequelize.js,Validation,Sequelize.js,在创建用户对象时,我使用以下代码验证用户伪对象的唯一性。问题是,当我编辑用户对象时,我需要检索当前的user.id。我该怎么做 pseudo: { type: DataTypes.STRING(150), allowNull: false, validate: { len: {args: [3, 150], msg: "Pseudo shall contains at least 3 characters"}, isUnique: function(value

在创建用户对象时,我使用以下代码验证用户伪对象的唯一性。问题是,当我编辑用户对象时,我需要检索当前的user.id。我该怎么做

pseudo:   {
  type: DataTypes.STRING(150), 
  allowNull: false, 
  validate: {
    len: {args: [3, 150], msg: "Pseudo shall contains at least 3 characters"},
    isUnique: function(value, next) {
      User.find({
          where: {pseudo: value},
          attributes: ['id']
      }).done(function(error, user) {
        if (error)
            return next(error);

        if (user)
            return next('Pseudo already in use!');

        next();
      });
    }
  }
我是这样做的:

pseudo:   {
  type: DataTypes.STRING(150), 
  allowNull: false, 
  validate: {
    len: {args: [3, 150], msg: "Pseudo shall contains at least 3 characters"},
    isUnique: function(value, next) {
      var id = this.getDataValue('id');

      User.find({
          where: {pseudo: value},
          attributes: ['id']
      }).done(function(error, user) {
        if (error)
            return next(error);

        if (user && user.id !== id)
            return next('Pseudo already in use!');

        next();
      });
    }
  }
},