ValidationError: «столбец» не может быть пустым в пустом столбце - PullRequest
0 голосов
/ 11 февраля 2019

При попытке установить passwordResetToken на null я не могу быть пустым ошибки.Если я вручную выполню запрос к базе данных, никаких проблем.

Полный код для обновления пользователя выглядит следующим образом:

let user = await this.usersRepository.getById(userId);
// ...
const userData = {
    encryptedPassword: await bcrypt.hash(
        newPasswd,
        Number(process.env.BCRYPT_ROUNDS)
    ),
    passwordResetToken: null,
    passwordResetExpires: null
};

user = await this.usersRepository.update(user.id, userData);

У меня определена модель, как таковая

const User = sequelize.define(
'user',
{
    forename: DataTypes.STRING,
    surname: DataTypes.STRING,
    email: DataTypes.STRING,
    encryptedPassword: DataTypes.STRING,
    passwordResetToken: {
        type: DataTypes.STRING,
        allowNull: true,
        defaultValue: null,
        validate: {
            notEmpty: false
        }
    },
    passwordResetExpires: {
        type: DataTypes.DATE,
        allowNull: true,
        defaultValue: null,
        validate: {
            isDate: true
        }
    }
},
{
    classMethods: {
        associate() {
            // associations can be defined here
        }
    }
}
);

Как видите, allowNull имеет значение true, defaultValue имеет значение null, а validate: notEmpty установлено на false.Чего мне не хватает?

Использование sequelize v4.42.0

Диалект 'mysql'

1 Ответ

0 голосов
/ 12 февраля 2019

Это на самом деле было вызвано другой частью моей проверки модулем npm структурой .

Я должен был установить empty в значение true в моей схеме следующим образом:

  passwordResetToken: {
    type: String,
    required: false,
    empty: true
  },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...