Разрешить Sequelize неуникальные записи в столбцах даже с уникальным значением true? - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть модель сиквела, в которой 2 записи столбца должны быть уникальными.Запись электронной почты работает нормально и отправляет сообщение об ошибке, если указан неуникальный адрес электронной почты.Однако поле имени пользователя будет введено, даже если оно уже существует в базе данных.Что еще нужно добавить ко второму уникальному валидатору, чтобы он заработал?

Вот моя модель:

module.exports = function(sequelize, DataTypes) {
  var User = sequelize.define("User", {

    email: {
      type: DataTypes.STRING,
      allowNull: false,
      unique: true,
      validate: {
        isEmail: true
      }
    },
    username: {
      type: DataTypes.STRING,
      allowNull: false,
      unique: true
    },
    password: {
      type: DataTypes.STRING,
      allowNull: false
    },
    profileImg: {
      type: DataTypes.STRING,
      defaultValue: "default.png"
    }
  });

  User.associate = function(models) {
    User.hasMany(models.Post, {
      onDelete: "cascade"
    });
  };

  User.prototype.validPassword = function(password) {
    return bcrypt.compareSync(password, this.password);
  };

  User.hook("beforeCreate", function(user) {
    user.password = bcrypt.hashSync(user.password, bcrypt.genSaltSync(10), null);
  });
  return User;
};

1 Ответ

0 голосов
/ 19 декабря 2018

Мое мышление все еще было на MongoDB, и я не сбрасывал базу данных после изменений в моей модели.После удаления и воссоздания базы данных все работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...