Sequelize — это популярная библиотека объектно-реляционного сопоставления (ORM) для Node.js, которая позволяет взаимодействовать с базами данных с помощью JavaScript. Одной из мощных функций, предоставляемых Sequelize, является возможность определять типы данных Enum в определениях вашей модели. В этой статье мы рассмотрим, как использовать типы данных Enum в моделях Sequelize, а также обсудим различные методы и примеры кода.
- Определение типов данных Enum:
Чтобы определить тип данных Enum в модели Sequelize, вы можете использовать свойствоDataTypes.ENUM. Вот пример:
const { DataTypes } = require('sequelize');
const User = sequelize.define('User', {
status: {
type: DataTypes.ENUM('active', 'inactive', 'pending'),
allowNull: false
}
});
- Получение значений перечисления.
Чтобы получить возможные значения типа данных Enum, вы можете использовать свойствоModel.rawAttributes. Вот пример:
const enumValues = User.rawAttributes.status.values;
console.log(enumValues); // ['active', 'inactive', 'pending']
- Проверка значений перечисления.
Sequelize обеспечивает встроенную проверку значений перечисления. Вы можете заставить определенный столбец принимать только определенные значения Enum, используя свойствоvalidate. Вот пример:
const User = sequelize.define('User', {
status: {
type: DataTypes.ENUM('active', 'inactive', 'pending'),
allowNull: false,
validate: {
isIn: [['active', 'inactive', 'pending']]
}
}
});
- Запрос по значениям Enum.
Вы можете запросить модели Sequelize на основе значений Enum, используя методModel.findAll. Вот пример:
const activeUsers = await User.findAll({ where: { status: 'active' } });
console.log(activeUsers);
- Обновление значений перечисления.
Чтобы обновить значение Enum в модели Sequelize, вы можете просто присвоить новое значение свойству и сохранить экземпляр модели. Вот пример:
const user = await User.findOne();
user.status = 'inactive';
await user.save();
Перечисления в моделях Sequelize предоставляют удобный способ определения и управления ограниченным набором значений для определенного столбца. В этой статье мы рассмотрели основы использования типов данных Enum в моделях Sequelize, включая определение типов данных Enum, получение значений, проверку входных данных, запросы и обновление значений Enum.
Используя возможности типов данных Enum в Sequelize, вы можете обеспечить согласованность данных и применить заранее определенные значения в столбцах базы данных.