При попытке установить 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. Что мне не хватает?
Использование продолжения v4.42.0
Диалект 'mysql'
Тот же результат. Я также заметил, что установка notEmpty msg не меняет возвращаемое сообщение.






На самом деле это было вызвано другой частью моей проверки модулем структура npm.
Мне пришлось установить для empty значение true в моей схеме следующим образом:
passwordResetToken: {
type: String,
required: false,
empty: true
},
попробуйте удалить проверку: { notEmpty: false }