Какво е Sequelize?
Sequelize е ORM (Object-Relational Mapping) библиотека за Node.js, която улеснява взаимодействието между приложението и релационната база данни. Тя поддържа множество релационни СУБД като MySQL, PostgreSQL, SQLite и MSSQL.
ORM-ите работят като мост между релационните бази данни и обектно-ориентираните езици като JavaScript. Те позволяват да се работи с базата данни като с обекти, което улеснява създаването, четенето, обновяването и изтриването на данни от базата данни.
Sequelize предоставя лесен за използване API за създаване на модели (моделите представляват таблиците в базата данни), свързване към базата данни и изпълнение на заявки към базата данни. Тя също така предоставя функционалност за миграции, които улесняват управлението на схемата на базата данни при изменения в приложението.
Sequelize е много гъвкава библиотека и предоставя множество опции за конфигуриране и настройка на връзката с базата данни, както и за изпълнение на заявки. Тя също така предоставя функционалности като транзакции, заявки за агрегация на данни, валидация на данни и други, които я правят много полезна при работа с релационни бази данни в Node.js приложения.
Ето пример за създаване на модел в Sequelize за таблица "Users" в база данни MySQL:
const Sequelize = require('sequelize');
// създаване на връзка с базата данни
const sequelize = new Sequelize('database_name', 'username', 'password', {
host: 'localhost',
dialect: 'mysql'
});
// дефиниране на модела за таблица "Users"
const User = sequelize.define('User', {
firstName: {
type: Sequelize.STRING,
allowNull: false
},
lastName: {
type: Sequelize.STRING,
allowNull: false
},
email: {
type: Sequelize.STRING,
allowNull: false,
unique: true
}
});
// създаване на таблицата "Users" в базата данни
User.sync()
.then(() => console.log('Таблицата Users беше създадена успешно.'))
.catch(err => console.error('Грешка при създаване на таблицата Users: ', err));
// експортиране на модела за използване в други модули
module.exports = User;
Този пример дефинира модела User
за таблицата Users
в базата данни, като задава три полета: firstName
, lastName
и email
. Всяко поле е дефинирано като обект, който указва типа на данните и други свойства като allowNull
(дали полето може да бъде празно) и unique
(дали стойността на полето трябва да бъде уникална).
След дефинирането на модела, може да се извика методът sync()
, който автоматично ще създаде таблицата Users
в базата данни, ако тя все още не съществува. Този метод връща Promise, което може да се обработи с then()
и catch()
методите за да се уверите, че таблицата беше създадена успешно или да се открие грешка при създаването.
След като моделът е дефиниран и таблицата е създадена в базата данни, може да се използва моделът за извършване на различни операции като създаване, четене, обновяване и изтриване на записи в базата данни.