#node.js #postgresql #validation #error-handling #sequelize.js
Вопрос:
В моем приложении пользователь должен иметь уникальное имя пользователя и адрес электронной почты, и при использовании Sequelize я заметил, что Sequelize выдает только одно уникальное нарушение, даже если в обоих полях есть дубликаты имени пользователя и электронной почты.
Но проблема с уникальным нарушением заключается в том, что и телефон электронной почты, и имя пользователя нарушили уникальное нарушение, но ошибка показывает только одно.
Моя Модель Пользователя:
User.init( { id: { type: DataTypes.UUID, unique: true, validate: { notEmpty: true, }, primaryKey: true, defaultValue: DataTypes.UUIDV4, }, emailOrPhone: { type: DataTypes.STRING, unique: { args: true, msg: 'Email address or phone number is already in use', }, validate: { notEmpty: { args: true, msg: 'Email or phone is required', }, }, }, userName: { type: DataTypes.STRING, unique: { args: true, msg: 'Username is already taken', }, validate: { notEmpty: { args: true, msg: 'Username is required', }, }, }, fullName: { type: DataTypes.STRING, validate: { notEmpty: { args: true, msg: 'Name is required', }, }, }, password: { type: DataTypes.STRING, validate: { notEmpty: { args: true, msg: 'Password Field is required', }, }, }, profilePicture: { type: DataTypes.STRING, notEmpty: true, defaultValue: path.resolve('profile.jpg'), }, roles: { type: DataTypes.JSON, defaultValue: ['user'], validate: { notEmpty: true, }, }, createdAt: { type: DataTypes.DATE, defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'), validate: { notEmpty: true, }, }, updatedAt: { type: DataTypes.DATE, defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'), validate: { notEmpty: true, }, }, }, { sequelize: Sequelize, modelName: 'User', } );
So my question is that is there any way to show both the unique violation error fields.