Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Sequelize je Node.js objektno-relacijski maper (ORM) koji pruža API jednostavan za korištenje za relacijske baze podataka kao što su Oracle, PostgreSQL, MySQL, MariaDB, SQLite i više.

PostgreSQL je široko korišten sustav za upravljanje relacijskim bazama podataka otvorenog koda (RDBMS) poznat po svojim opsežnim značajkama, izvrsnoj sigurnosti i skalabilnosti.

PostgreSQL je kompatibilan s više programskih jezika, uključujući JavaScript, što ga čini idealnim izborom za web aplikacije i aplikacije koje se temelje na podacima. Ovdje ćete naučiti postaviti Postgres bazu podataka u Node.js koristeći Sequelize.

Korak 1: Instaliranje ovisnosti

Prije nego što možete koristiti PostgreSQL, morate ga instalirati na svoj sustav. Za preuzimanje PostgreSQL-a idite na PostgreSQL web mjesto i odaberite svoj operativni sustav. Ako naiđete na probleme tijekom ovog procesa na macOS-u, provjerite instaliranje PostgreSQL-a na macOS.

instagram viewer

Alternativno, možete koristiti PostgreSQL u oblaku koristeći platforme kao što su ElephantSQL koji nude PostgreSQL kao uslugu.

Zatim instalirajte nastaviti pokretanjem sljedeće naredbe:

npm instaliraj sequelize

Zatim instalirajte upravljački program baze podataka PostgreSQL pokretanjem donje naredbe:

npm instalirajte pg pg-hstore

Korak 2: Povezivanje s PostgreSQL bazom podataka

U izvornom direktoriju vašeg projekta stvorite a konfiguracija mapa. u konfiguracija mapu, stvorite a db.js datoteka. Ova datoteka će sadržavati sav kod koji povezuje vašu Node.js aplikaciju s PostgreSQL bazom podataka.

Dalje, u vašem db.js datoteka, uvoz Sekvencirati iz nastaviti.

konst { Sequelize } = zahtijevati("slijediti");

Zatim trebate stvoriti a Sekvencirati primjer. Ova instanca uzima parametre veze kao što su naziv baze podataka, korisničko ime i lozinka kao argumente. Alternativno, uzima jedan URI veze kao argument.

Na primjer:

// Parametri veze
konst nastaviti = novi Slijedite ('baza podataka', 'Korisničko ime', 'lozinka')

// s URI-jem
konst nastaviti = novi Sequelize (process.env. POSTGRESQL_DB_URI)

Osim toga, ovaj konstruktor uzima konfiguracijski objekt kao izborni argument.

Zatim testirajte svoju sequelize vezu dodavanjem koda ispod vašeg db.js datoteka:

konst testDbConnection = asinkroni () => {
probati {
čekati sequelize.authenticate();
konzola.log("Veza je uspješno uspostavljena.");
} ulov (pogreška) {
konzola.greška("Ne mogu se povezati s bazom podataka:", pogreška);
}
};

Gornji blok koda poziva nastaviti.provjeri autentičnost() metoda za testiranje je li veza u redu i ispisuje "Veza je uspješno uspostavljena." za utjehu ako je. Ako postoji pogreška povezivanja, ispisuje se "Nije moguće povezati se s bazom podataka:" zajedno s pogreškom.

Na kraju, izvezite instancu sequelize i testDbConnection funkcija.

modul.izvoz = { kvadrat: slijed, testDbConnection};

Korak 3: Stvaranje modela sekvenciranja

U izvornom direktoriju vašeg projekta stvorite a modeli mapa. Ova će mapa sadržavati sve vaše modele sekvenciranja. Zatim izradite datoteku modela. Naziv koji date datoteci trebao bi sadržavati informacije o prikazu modela.

U svoju datoteku modela uvezite instancu sekvenciranja.

// primjer.js
konst { sq } = zahtijevati("../config/db");

Zatim, uvoz Vrste podataka iz nastaviti.

konst { DataTypes } = zahtijevati("slijediti");

Vrste podataka omogućuje vam postavljanje potrebne vrste podataka za svako svojstvo na vašem modelu.

Možete stvoriti novi model sekvenciranja koji predstavlja tablicu u vašoj bazi podataka pozivom definirati metodu na vašoj instanci sekvenciranja.

The definirati metoda uzima dva argumenta: naziv modela i objekt atributa. Naziv modela predstavlja naziv modela. Objekt atributa predstavlja stupce baze podataka, pri čemu svako svojstvo predstavlja stupac.

Evo primjera modela sekvenciranja:

konst Korisnik = sq.define("korisnik", {
email: {
vrsta: DataTypes. NIZ,
dopustiNull: lažno,
Osnovni ključ: pravi,
},

puno ime: {
vrsta: DataTypes. NIZ,
},

dob: {
vrsta: DataTypes. CIJELI BROJ,
},

zaposlen: {
vrsta: DataTypes. BOOLEAN,
zadana vrijednost: lažno,
},
});

Gore navedeni blok koda definira a Korisnik model s an elektronička pošta, puno ime, dob, i zaposlen Svojstva.

The elektronička pošta svojstvo je tip niza koji ne može biti prazan (dopustiNull: lažno) i također djeluje kao primarni ključ za Korisnik stol (primarni ključ: istina). The puno ime i dob svojstvo je niz (Vrste podataka. NIZ) i cjelobrojnog tipa (Vrste podataka. CIJELI BROJ), odnosno. The zaposlen svojstvo je Boolean tip sa zadanom vrijednošću lažno, što znači da ako nije navedeno, automatski će biti postavljeno na false u bazi podataka.

Zatim nazovite sinkronizacija metoda na vašem modelu. Ova metoda uzima konfiguracijski objekt kao argument. Ovisno o opcijama u konfiguracijskom objektu, sinkronizacija metoda može:

  • User.sync(): Kreirajte tablicu ako ne postoji i ne čini ništa ako postoji.
  • User.sync({ force: true }): Napravite tablicu i ispustite prvu ako već postoji.
  • User.sync({ alter: true }): Provjerite trenutno stanje tablice u bazi podataka i izvršite potrebne promjene u tablici kako bi odgovarala modelu.

Na primjer:

User.sync().then(() => {
konzola.log("Korisnički model sinkroniziran");
});

Gornji blok koda stvara tablicu baze podataka za Korisnik model ako ne postoji i ne radi ništa ako postoji.

Na kraju, izvezite svoj model:

modul.exports = Korisnik;

Postavljanje upita PostgreSQL bazi podataka

Sequelize pruža različite metode koje vam omogućuju interakciju s vašom PostgreSQL bazom podataka bez pisanja sirovog SQL naredbe.

Spremanje podataka u PostgreSQL

Za spremanje podataka u PostgreSQL bazu podataka, pozovite stvoriti metodu na vašem modelu i proslijedite objekt koji implementira PostgreSQL model kao argument.

Na primjer:

konst mike = User.create({
email: "[email protected]",
puno ime: "Mike Smith",
dob: 30,
zaposlen: pravi,
});

Gornji blok koda stvara a Korisnik instanca od mikrofon u vašoj bazi podataka i automatski generira jedinstveni ID.

Dohvaćanje podataka iz PostgreSQL-a

Podaci se mogu dohvatiti na nekoliko načina iz PostgreSQL baze podataka koristeći sequelize, ali to ovisi o prirodi podataka koje želite primiti.

Najčešće metode za dohvaćanje podataka su findOne i pronaćiSve metode. The pronaćiSve vraća sve instance podataka koje zadovoljavaju dani upit, dok findOne vraća prvu instancu koja zadovoljava upit.

Na primjer:

// Pronađi sve korisnike
konst korisnici = čekati User.findAll();

Gornji kod će vratiti sve Korisnik instance u bazi podataka.

Vraćene podatke možete filtrirati pomoću gdje izjava. Ova izjava omogućuje dodavanje određenih uvjeta upitu. Vaš će upit vratiti samo instance koje ispunjavaju te uvjete.

Na primjer:

User.findAll({
gdje: {
zaposlen: lažno
}
});

Gornji kod će vratiti sve Korisnik instance sa svojim zaposlen svojstvo postavljeno na lažno u bazi podataka.

Ažuriranje podataka na PostgreSQL

Podatke o bazi podataka PostgreSQL možete ažurirati pozivom na Ažuriraj metoda i prosljeđivanje filtra kao argumenta.

Na primjer:

čekati User.update({ zaposlen: pravi }, {
gdje: {
zaposlen: lažno
}
});

Gornji kod mijenja sve Korisnik primjeri s an zaposlen vrijednost lažno do pravi.

Alternativno, možete ažurirati podatke ručnim mijenjanjem svojstava koja želite promijeniti i pozivanjem uštedjeti metoda na primjeru.

Na primjer:

konst korisnikMike = čekati User.findOne({ gdje: { elektronička pošta: "[email protected]" } });

ako(korisnikMike !== ništavan) {
korisnikMike.email = "[email protected]"
čekati korisnikMike.save()
}

Gornji kod postavlja upit bazi podataka za korisnika koji ima adresu e-pošte "[email protected]" koristeći findOne metoda. Ako je korisnik pronađen, ponovno dodjeljuje svojstvo e-pošte na “[email protected]” i poziva uštedjeti način ažuriranja baze podataka.

Brisanje podataka na PostgreSQL

Možete izbrisati podatke na PostgreSQL-u pozivom na uništiti metoda i prosljeđivanje filtra kao argumenta.

Na primjer:

čekati User.destroy({
gdje: {
email: "[email protected]"
}
});

Gornji kod postavlja upit bazi podataka za korisnika koji ima e-mail "[email protected]" i briše korisnika iz baze podataka.

Prednosti korištenja PostgreSQL-a sa Sequlizeom

Pisanje neobrađenih SQL upita za interakciju s PostgreSQL bazom podataka može biti gnjavaža. Pomoću Sequelize možete jednostavno definirati modele, stvoriti veze između njih i postavljati upite bazi podataka pomoću jednostavnog i intuitivnog API-ja. Alternativno, možete koristiti druge ORM-ove, kao što je TypeORM, za interakciju s PostgreSQL bazom podataka bez gnjavaže pisanja neobrađenih SQL upita.