Sequelize este un cartografier obiect-relațional (ORM) Node.js care oferă un API ușor de utilizat pentru baze de date relaționale precum Oracle, PostgreSQL, MySQL, MariaDB, SQLite și multe altele.
PostgreSQL este un sistem de gestionare a bazelor de date relaționale (RDBMS) cu sursă deschisă utilizat pe scară largă, renumit pentru caracteristicile sale extinse, securitatea excelentă și scalabilitatea.
PostgreSQL este compatibil cu mai multe limbaje de programare, inclusiv JavaScript, ceea ce îl face o alegere ideală pentru aplicații web și bazate pe date. Aici veți învăța să configurați o bază de date Postgres în Node.js folosind Sequelize.
Pasul 1: Instalarea dependențelor
Înainte de a putea utiliza PostgreSQL, trebuie să îl instalați pe sistemul dumneavoastră. Pentru a descărca PostgreSQL, navigați la Site-ul web PostgreSQL
și alegeți sistemul dvs. de operare. Dacă întâmpinați probleme în timpul acestui proces pe macOS, verificați instalarea PostgreSQL pe macOS.Alternativ, puteți utiliza PostgreSQL pe cloud utilizând platforme precum ElephantSQL care oferă PostgreSQL ca serviciu.
Apoi, instalați secheleze rulând următoarea comandă:
npm install sequelize
Apoi, instalați driverul bazei de date PostgreSQL executând comanda de mai jos:
npm instalează pg pg-hstore
Pasul 2: Conectarea la o bază de date PostgreSQL
În directorul sursă al proiectului, creați un config pliant. În config folder, creați un db.js fişier. Acest fișier va conține tot codul care conectează aplicația dvs. Node.js la o bază de date PostgreSQL.
În continuare, în dvs db.js fișier, import Sequelize din secheleze.
const { Sequelize } = cere("secheliza");
În continuare, trebuie să creați un Sequelize instanță. Această instanță ia ca argumente parametrii de conexiune, cum ar fi numele bazei de date, numele de utilizator și parola. Alternativ, este nevoie de un singur URI de conexiune ca argument.
De exemplu:
// Parametrii conexiunii
const sequelize = nou Sequelize('Bază de date', 'nume de utilizator', 'parola')
// cu URI
const sequelize = nou Sequelize (process.env. POSTGRESQL_DB_URI)
În plus, acest constructor ia un obiect de configurare ca argument opțional.
Apoi, testați-vă conexiunea sequelize adăugând codul sub dvs db.js fişier:
const testDbConnection = asincron () => {
încerca {
așteaptă sequelize.authenticate();
consolă.Buturuga(„Conexiunea a fost stabilită cu succes.”);
} captură (eroare) {
consolă.eroare(„Nu se poate conecta la baza de date:”, eroare);
}
};
Blocul de cod de mai sus numește secheleze.autentifica() metoda pentru a testa dacă conexiunea este OK și afișează „Conexiune a fost stabilită cu succes”. a consola dacă este. Dacă există o eroare de conectare, se afișează „Nu se poate conecta la baza de date:” împreună cu eroarea.
În cele din urmă, exportați instanța sequelize și testDbConnection funcţie.
modul.exports = { mp: sequelize, testDbConnection };
Pasul 3: Crearea unui model Sequelize
În directorul sursă al proiectului, creați un modele pliant. Acest folder va conține toate modelele dvs. de sequelize. Apoi, creați un fișier model. Numele pe care îl dați fișierului ar trebui să ofere informații despre reprezentarea modelului.
În fișierul model, importați instanța sequelize.
// exemplu.js
const { sq } = cere(„../config/db”);
Apoi, import Tipuri de date din secheleze.
const { DataTypes } = cere("secheliza");
Tipuri de date vă permite să setați tipul de date necesar pentru fiecare proprietate a modelului dvs.
Puteți crea un nou model de sequelize reprezentând un tabel din baza de date apelând la defini metoda pe instanța dvs. de sequelize.
The defini Metoda are două argumente: Numele modelului și un obiect atribute. Numele modelului reprezintă numele modelului. Obiectul atribute reprezintă coloanele bazei de date, fiecare proprietate reprezentând o coloană.
Iată un exemplu de model de sequelize:
const Utilizator = sq.define("utilizator", {
e-mail: {
tip: DataTypes. ŞIR,
allowNull: fals,
cheia principala: Adevărat,
},Numele complet: {
tip: DataTypes. ŞIR,
},
varsta: {
tip: DataTypes. ÎNTREG,
},
angajat: {
tip: DataTypes. BOOLEAN,
valoare implicită: fals,
},
});
Blocul de cod de mai sus definește a Utilizator model cu an e-mail, Numele complet, vârstă, și angajat proprietăți.
The e-mail proprietatea este un tip de șir care nu poate fi gol (allowNull: fals) și acționează, de asemenea, ca cheie primară pentru Utilizator masa (primaryKey: adevărat). The Numele complet si vârstă proprietatea este un șir (Tipuri de date. ŞIR) și tipul întreg (Tipuri de date. ÎNTREG), respectiv. The angajat proprietatea este un tip boolean cu o valoare implicită de fals, ceea ce înseamnă că, dacă nu este specificat, va fi setat automat la false în baza de date.
Apoi, sunați la sincronizare metoda pe modelul dvs. Această metodă ia ca argument un obiect de configurare. În funcție de opțiunile din obiectul de configurare, sincronizare metoda poate:
- User.sync(): Creați tabelul dacă nu există și nu face nimic dacă există.
- User.sync({ forța: adevărat }): Creați tabelul și plasați primul dacă acesta există deja.
- User.sync({ alter: true }): Verificați starea curentă a tabelului din baza de date și efectuați modificările necesare în tabel pentru a se potrivi cu modelul.
De exemplu:
User.sync().then(() => {
consolă.Buturuga(„Model de utilizator sincronizat”);
});
Blocul de cod de mai sus creează tabelul bazei de date pentru Utilizator modelează dacă nu există și nu face nimic dacă există.
În cele din urmă, exportați modelul dvs.:
modul.exports = Utilizator;
Interogarea unei baze de date PostgreSQL
Sequelize oferă diverse metode care vă permit să interacționați cu baza de date PostgreSQL fără a scrie brut Comenzi SQL.
Salvarea datelor în PostgreSQL
Pentru a salva date într-o bază de date PostgreSQL, apelați crea metoda pe modelul dvs. și treceți un obiect care implementează modelul PostgreSQL ca argument.
De exemplu:
const mike = User.create({
e-mail: „[email protected]”,
Numele complet: "Mike Smith",
vârstă: 30,
angajat: Adevărat,
});
Blocul de cod de mai sus creează un Utilizator instanță de mike în baza ta de date și generează automat un id unic.
Preluarea datelor din PostgreSQL
Datele pot fi preluate în mai multe moduri dintr-o bază de date PostgreSQL folosind sequelize, dar depinde de natura datelor pe care doriți să le primiți.
Cele mai comune metode de a prelua date sunt găsește una și Găsiți toate metode. The Găsiți toate returnează toate instanțele de date care satisfac o anumită interogare, while găsește una returnează prima instanță care satisface interogarea.
De exemplu:
// Găsiți toți utilizatorii
const utilizatori = așteaptă User.findAll();
Codul de mai sus va returna toate Utilizator instanțe în baza de date.
Puteți filtra prin datele returnate folosind Unde afirmație. Această declarație vă permite să adăugați anumite condiții la interogare. Interogarea dvs. va returna numai instanțe care îndeplinesc aceste condiții.
De exemplu:
User.findAll({
Unde: {
angajat: fals
}
});
Codul de mai sus va returna toate Utilizator instanțe cu lor angajat proprietate setată la fals în baza de date.
Actualizarea datelor pe PostgreSQL
Puteți actualiza datele din baza de date PostgreSQL apelând la Actualizați metoda și trecerea unui filtru ca argument.
De exemplu:
așteaptă Actualizare.utilizator({ angajat: Adevărat }, {
Unde: {
angajat: fals
}
});
Codul de mai sus modifică toate Utilizator cazuri cu an angajat valoarea fals la Adevărat.
Alternativ, puteți actualiza datele modificând manual proprietățile pe care doriți să le modificați și apelând la Salvați metoda pe instanță.
De exemplu:
const userMike = așteaptă User.findOne({ Unde: { e-mail: „[email protected]” } });
dacă(utilizatorul Mike !== nul) {
userMike.email = „[email protected]”
așteaptă userMike.save()
}
Codul de mai sus interogă baza de date pentru un utilizator care are e-mailul „[email protected]” folosind găsește una metodă. Dacă utilizatorul este găsit, acesta reatribuie proprietatea de e-mail către „[email protected]” și apelează Salvați metoda de actualizare a bazei de date.
Ștergerea datelor de pe PostgreSQL
Puteți șterge datele de pe PostgreSQL apelând la distruge metoda și trecerea unui filtru ca argument.
De exemplu:
așteaptă User.destroy({
Unde: {
e-mail: „[email protected]”
}
});
Codul de mai sus interogă baza de date pentru un utilizator care are e-mailul „[email protected]” și șterge utilizatorul din baza de date.
Beneficiile utilizării PostgreSQL cu Sequilize
Scrierea de interogări SQL brute pentru a interacționa cu o bază de date PostgreSQL poate fi o bătaie de cap. Cu Sequelize, puteți defini cu ușurință modele, puteți crea asocieri între ele și puteți interoga baza de date cu un API simplu și intuitiv. Alternativ, puteți utiliza alte ORM-uri, cum ar fi TypeORM, pentru a interacționa cu o bază de date PostgreSQL fără bătaia de cap de a scrie interogări SQL brute.