Как се работи със Sequalize

Как се работи със Sequalize
Photo by benjamin lehman / Unsplash

Sequelize е ORM (Object-Relational Mapping) библиотека за Node.js, която улеснява работата с релационни бази данни като MySQL, PostgreSQL, SQLite и други, като предоставя JavaScript интерфейс за извършване на заявки към базата данни. Ето някои от основните стъпки за работа с Sequelize:

Инсталирайте Sequelize и драйвера за базата данни, с която ще работите (например, mysql2, pg или sqlite3).

npm install sequelize mysql2

Създайте връзка към базата данни, която ще използвате, използвайки конфигурационния обект. Това обикновено се прави в отделен модул, който е отговорен за връзката към базата данни.

const Sequelize = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'mysql'
});

// тестово извикване на връзката
sequelize
  .authenticate()
  .then(() => {
    console.log('Connection has been established successfully.');
  })
  .catch(err => {
    console.error('Unable to connect to the database:', err);
  });

Дефинирайте моделите за вашите таблиците в базата данни, използвайки метода define() на обекта на Sequelize. Това се прави обикновено в отделни модули, които съдържат логиката за базата данни.

const { DataTypes } = require('sequelize');

const sequelize = require('../config/database');

const User = sequelize.define('User', {
  firstName: {
    type: DataTypes.STRING,
    allowNull: false
  },
  lastName: {
    type: DataTypes.STRING,
    allowNull: false
  },
  email: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true
  },
  password: {
    type: DataTypes.STRING,
    allowNull: false
  }
});

module.exports = User;

Използвайте методите на моделите, за да извършвате заявки към базата данни. Методите на моделите са предварително дефинирани функции, които улесняват извършването на заявки към базата данни. Ето пример за това как да създадете запис в базата данни, използвайки метода create() на модела.

const User = require('../models/user');

User.create({
  firstName: 'John',
  lastName: 'Doe',
  email: '[email protected]',
  password: 'password123'
})
  .then(user => {
    console.log(user.toJSON());
  })
  .catch(err => {
    console.error('Unable to create user