Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo. Preberi več.

Sequelize je objektno-relacijski preslikovalnik (ORM) Node.js, ki ponuja enostaven API za relacijske baze podatkov, kot so Oracle, PostgreSQL, MySQL, MariaDB, SQLite in druge.

PostgreSQL je široko uporabljen odprtokodni sistem za upravljanje relacijskih baz podatkov (RDBMS), ki slovi po svojih obsežnih funkcijah, odlični varnosti in razširljivosti.

PostgreSQL je združljiv z več programskimi jeziki, vključno z JavaScriptom, zaradi česar je idealna izbira za spletne in podatkovno vodene aplikacije. Tukaj se boste naučili nastaviti bazo podatkov Postgres v Node.js z uporabo Sequelize.

1. korak: Namestitev odvisnosti

Preden lahko uporabite PostgreSQL, ga morate namestiti v svoj sistem. Če želite prenesti PostgreSQL, pojdite na Spletno mesto PostgreSQL in izberite svoj operacijski sistem. Če med tem postopkom v macOS naletite na težave, preverite namestitev PostgreSQL na macOS.

instagram viewer

Lahko pa uporabite PostgreSQL v oblaku z uporabo platform, kot je npr ElephantSQL ki ponujajo PostgreSQL kot storitev.

Nato namestite nadaljevati z izvajanjem naslednjega ukaza:

npm namestite sequelize

Nato namestite gonilnik baze podatkov PostgreSQL tako, da zaženete spodnji ukaz:

npm namestite pg pg-hstore

2. korak: Povezovanje z zbirko podatkov PostgreSQL

V izvornem imeniku vašega projekta ustvarite a konfiguracija mapo. V konfiguracija mapo, ustvarite a db.js mapa. Ta datoteka bo vsebovala vso kodo, ki povezuje vašo aplikacijo Node.js z bazo podatkov PostgreSQL.

Naprej, v vašem db.js datoteka, uvoz Sequelize od nadaljevati.

konst {Sequelize} = zahtevati("nadaljevati");

Nato morate ustvariti a Sequelize primerek. Ta primerek kot argumente sprejme parametre povezave, kot so ime baze podatkov, uporabniško ime in geslo. Druga možnost je, da kot argument vzame en URI povezave.

Na primer:

// Parametri povezave
konst nadaljevanje = novo Sequelize('baza podatkov', 'uporabniško ime', 'geslo')

// z URI
konst nadaljevanje = novo Sequelize (process.env. POSTGRESQL_DB_URI)

Poleg tega ta konstruktor sprejme konfiguracijski objekt kot izbirni argument.

Nato preizkusite svojo sequelize povezavo tako, da dodate kodo pod svojo db.js mapa:

konst testDbConnection = asinh () => {
poskusi {
čakati sequelize.authenticate();
konzola.log("Povezava je bila uspešno vzpostavljena.");
} ulov (napaka) {
konzola.napaka("Ni mogoče vzpostaviti povezave z bazo podatkov:", napaka);
}
};

Zgornji kodni blok pokliče nadaljevati.overi () metoda za preverjanje, ali je povezava v redu, in natisne "Povezava je bila uspešno vzpostavljena." potolažiti, če je. Če pride do napake pri povezavi, se skupaj z napako natisne "Povezave z bazo podatkov ni mogoče vzpostaviti:".

Končno izvozite primerek sequelize in datoteko testDbConnection funkcijo.

modul.exports = { kv: sequelize, testDbConnection };

3. korak: Ustvarjanje modela zaporedja

V izvornem imeniku vašega projekta ustvarite a modeli mapo. Ta mapa bo vsebovala vse vaše modele nadaljevanja. Nato ustvarite datoteko modela. Ime, ki ga daste datoteki, mora vsebovati informacije o predstavitvi modela.

V svojo datoteko modela uvozite primerek sequelize.

// primer.js
konst { sq } = zahtevati("../config/db");

Nato uvozite DataTypes od nadaljevati.

konst { DataTypes } = zahtevati("nadaljevati");

DataTypes omogoča nastavitev zahtevanega podatkovnega tipa za vsako lastnost vašega modela.

Ustvarite lahko nov model zaporedja, ki predstavlja tabelo v vaši bazi podatkov, tako da pokličete opredeliti na vašem primerku sequelize.

The opredeliti metoda ima dva argumenta: ime modela in objekt atributov. Ime modela predstavlja ime modela. Objekt atributov predstavlja stolpce baze podatkov, pri čemer vsaka lastnost predstavlja stolpec.

Tukaj je primer modela nadaljevanja:

konst Uporabnik = sq.define("uporabnik", {
E-naslov: {
tip: DataTypes. VRVICA,
dovoliNull: lažno,
primarniKey: prav,
},

polno ime: {
tip: DataTypes. VRVICA,
},

starost: {
tip: DataTypes. CELO ŠTEVILO,
},

zaposlen: {
tip: DataTypes. BOOLEAN,
privzeta vrednost: lažno,
},
});

Zgornji blok kode definira a Uporabnik model z an E-naslov, polno ime, starost, in zaposlena lastnosti.

The E-naslov Lastnost je vrsta niza, ki ne sme biti prazna (allowNull: false) in deluje tudi kot primarni ključ za Uporabnik miza (primarniKey: res). The polno ime in starost lastnost je niz (DataTypes. VRVICA) in celoštevilski tip (DataTypes. CELO ŠTEVILO), oz. The zaposlena lastnost je logični tip s privzeto vrednostjo lažno, kar pomeni, da bo v bazi podatkov samodejno nastavljeno na false, če ni določeno.

Nato pokličite sinhronizacija način na vašem modelu. Ta metoda sprejme konfiguracijski objekt kot argument. Odvisno od možnosti v konfiguracijskem objektu se sinhronizacija metoda lahko:

  • User.sync(): Ustvari tabelo, če ne obstaja, in ne naredi ničesar, če obstaja.
  • User.sync({force: true}): Ustvarite tabelo in spustite prvo, če že obstaja.
  • User.sync({ alter: true }): Preverite trenutno stanje tabele v bazi podatkov in izvedite potrebne spremembe v tabeli, da bo ustrezala modelu.

Na primer:

User.sync().then(() => {
konzola.log("Uporabniški model sinhroniziran");
});

Zgornji kodni blok ustvari tabelo baze podatkov za Uporabnik model, če ne obstaja, in ne naredi ničesar, če obstaja.

Končno izvozite svoj model:

modul.exports = uporabnik;

Poizvedovanje po zbirki podatkov PostgreSQL

Sequelize ponuja različne metode, ki vam omogočajo interakcijo z vašo bazo podatkov PostgreSQL brez pisanja raw SQL ukazi.

Shranjevanje podatkov v PostgreSQL

Če želite podatke shraniti v bazo podatkov PostgreSQL, pokličite ustvariti metodo na vašem modelu in posredujte objekt, ki implementira model PostgreSQL kot argument.

Na primer:

konst mike = User.create({
E-naslov: "[email protected]",
polno ime: "Mike Smith",
starost: 30,
zaposlen: prav,
});

Zgornji blok kode ustvari a Uporabnik primerek mike v vaši bazi podatkov in samodejno ustvari edinstveni ID.

Pridobivanje podatkov iz PostgreSQL

Podatke je mogoče pridobiti na več načinov iz baze podatkov PostgreSQL z uporabo sequelize, vendar je to odvisno od narave podatkov, ki jih želite prejeti.

Najpogostejše metode za pridobivanje podatkov so findOne in findAll metode. The findAll vrne vse primerke podatkov, ki ustrezajo dani poizvedbi, medtem ko findOne vrne prvi primerek, ki zadovolji poizvedbo.

Na primer:

// Najdi vse uporabnike
konst uporabniki = čakati User.findAll();

Zgornja koda bo vrnila vse Uporabnik primerkov v bazi podatkov.

Vrnjene podatke lahko filtrirate z uporabo kje izjava. Ta izjava vam omogoča, da poizvedbi dodate določene pogoje. Vaša poizvedba bo vrnila samo primerke, ki izpolnjujejo te pogoje.

Na primer:

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

Zgornja koda bo vrnila vse Uporabnik primeri z njihovimi zaposlena lastnost nastavljena na lažno v bazi podatkov.

Posodabljanje podatkov na PostgreSQL

Podatke v bazi podatkov PostgreSQL lahko posodobite tako, da pokličete nadgradnja metoda in posredovanje filtra kot argumenta.

Na primer:

čakati User.update({ zaposlena: prav }, {
kje: {
zaposlen: lažno
}
});

Zgornja koda spremeni vse Uporabnik primeri z an zaposlena vrednost lažno do prav.

Podatke lahko posodobite tudi tako, da ročno spremenite lastnosti, ki jih želite spremeniti, in pokličete shraniti metoda na primeru.

Na primer:

konst uporabnikMike = čakati User.findOne({ kje: { E-naslov: "[email protected]" } });

če(uporabnikMike !== nič) {
uporabnikMike.email = "[email protected]"
čakati uporabnikMike.save()
}

Zgornja koda poizveduje v zbirki podatkov za uporabnika z e-poštnim naslovom »[email protected]« z uporabo findOne metoda. Če je uporabnik najden, e-poštno lastnost znova dodeli »[email protected]« in pokliče shraniti način za posodobitev baze podatkov.

Brisanje podatkov na PostgreSQL

Podatke o PostgreSQL lahko izbrišete tako, da pokličete uničiti metoda in posredovanje filtra kot argumenta.

Na primer:

čakati User.destroy({
kje: {
E-naslov: "[email protected]"
}
});

Zgornja koda poizveduje v bazi podatkov za uporabnika z e-poštnim naslovom »[email protected]« in uporabnika izbriše iz baze podatkov.

Prednosti uporabe PostgreSQL s Sequlize

Pisanje neobdelanih poizvedb SQL za interakcijo z bazo podatkov PostgreSQL je lahko težava. S Sequelize lahko preprosto definirate modele, ustvarite povezave med njimi in poizvedujete po bazi podatkov s preprostim in intuitivnim API-jem. Lahko pa uporabite druge ORM-je, kot je TypeORM, za interakcijo z bazo podatkov PostgreSQL brez težav s pisanjem neobdelanih poizvedb SQL.