Sequelize on Node.js-objektien relaatiokartoittaja (ORM), joka tarjoaa helppokäyttöisen API: n relaatiotietokantoille, kuten Oracle, PostgreSQL, MySQL, MariaDB, SQLite ja monet muut.
PostgreSQL on laajalti käytetty avoimen lähdekoodin relaatiotietokannan hallintajärjestelmä (RDBMS), joka tunnetaan laajoista ominaisuuksistaan, erinomaisesta turvallisuudestaan ja skaalautumisestaan.
PostgreSQL on yhteensopiva useiden ohjelmointikielten, mukaan lukien JavaScriptin, kanssa, joten se on ihanteellinen valinta verkko- ja dataohjattuihin sovelluksiin. Täällä opit määrittämään Postgres-tietokannan Node.js: ssä Sequelizen avulla.
Vaihe 1: Riippuvuuksien asentaminen
Ennen kuin voit käyttää PostgreSQL: ää, sinun on asennettava se järjestelmääsi. Lataa PostgreSQL siirtymällä kohtaan PostgreSQL-verkkosivusto ja valitse käyttöjärjestelmäsi. Jos kohtaat ongelmia tämän prosessin aikana macOS: ssä, tarkista PostgreSQL: n asentaminen macOS: ään.
Vaihtoehtoisesti voit käyttää PostgreSQL: ää pilvessä hyödyntämällä alustoja, kuten ElephantSQL jotka tarjoavat PostgreSQL: n palveluna.
Seuraavaksi asenna jatkoa suorittamalla seuraava komento:
npm asennuksen jatko
Asenna sitten PostgreSQL-tietokantaohjain suorittamalla alla oleva komento:
npm asenna pg pg-hstore
Vaihe 2: Yhteyden muodostaminen PostgreSQL-tietokantaan
Luo projektisi lähdehakemistoon a config kansio. Vuonna config kansio, luo a db.js tiedosto. Tämä tiedosto sisältää kaiken koodin, joka yhdistää Node.js-sovelluksesi PostgreSQL-tietokantaan.
Seuraavaksi sinun db.js tiedosto, tuonti Jatkoa alkaen jatkoa.
konst { Jatkoa } = vaatia("jatkoa");
Seuraavaksi sinun on luotava a Jatkoa ilmentymä. Tämä ilmentymä ottaa argumenteina yhteysparametreja, kuten tietokannan nimen, käyttäjänimen ja salasanan. Vaihtoehtoisesti se käyttää yhden yhteyden URI: n argumenttina.
Esimerkiksi:
// Yhteysparametrit
konst jatko = Uusi Jatkoa('tietokanta', 'käyttäjänimi', 'Salasana')
// URI: lla
konst jatko = Uusi Jatko (process.env. POSTGRESQL_DB_URI)
Lisäksi tämä rakentaja ottaa konfigurointiobjektin valinnaiseksi argumentiksi.
Testaa seuraavaksi jatkoyhteyttäsi lisäämällä koodi omasi alle db.js tiedosto:
konst testDbConnection = asynk () => {
yrittää {
odottaa sequelize.authenticate();
konsoli.Hirsi("Yhteys on muodostettu onnistuneesti.");
} ottaa kiinni (virhe) {
konsoli.virhe("Ei voi muodostaa yhteyttä tietokantaan:", virhe);
}
};
Yllä oleva koodilohko kutsuu jatkoa.autentikoida() menetelmä testata, onko yhteys kunnossa ja tulostaa "Yhteys on muodostettu onnistuneesti". lohduttamaan, jos on. Jos tapahtuu yhteysvirhe, se tulostaa virheen mukana "Ei voi muodostaa yhteyttä tietokantaan:".
Vie lopuksi jatko-instanssi ja testDbConnection toiminto.
moduuli.exports = { sq: sequelize, testDbConnection };
Vaihe 3: Jatkomallin luominen
Luo projektisi lähdehakemistoon a mallit kansio. Tämä kansio sisältää kaikki sarjamallisi. Luo seuraavaksi mallitiedosto. Tiedostolle antamasi nimen pitäisi antaa tietoja mallin esityksestä.
Tuo mallitiedostossasi järjestysinstanssi.
// esimerkki.js
konst { neliö } = vaatia("../config/db");
Seuraavaksi tuonti Tietotyypit alkaen jatkoa.
konst { Tietotyypit } = vaatia("jatkoa");
Tietotyypit voit määrittää vaaditun tietotyypin jokaiselle mallin omaisuudelle.
Voit luoda uuden jatkomallin, joka edustaa tietokannassasi olevaa taulukkoa kutsumalla määritellä menetelmää jatko-instanssissasi.
The määritellä menetelmässä on kaksi argumenttia: mallin nimi ja attribuuttiobjekti. Mallin nimi edustaa mallin nimeä. Attribuuttiobjekti edustaa tietokannan sarakkeita, ja jokainen ominaisuus edustaa saraketta.
Tässä on esimerkki jatkomallista:
konst User = sq.define("käyttäjä", {
sähköposti: {
tyyppi: DataTypes. STRING,
sallinull: väärä,
pääavain: totta,
},koko nimi: {
tyyppi: DataTypes. STRING,
},
ikä: {
tyyppi: DataTypes. KOKONAISLUKU,
},
työssä: {
tyyppi: DataTypes. BOOLEAN,
oletusarvo: väärä,
},
});
Yllä oleva koodilohko määrittää a Käyttäjä malli, jossa on sähköposti, koko nimi, ikä, ja työllistetty ominaisuuksia.
The sähköposti ominaisuus on merkkijonotyyppi, joka ei voi olla tyhjä (allowNull: false) ja toimii myös pääavaimena Käyttäjä pöytä (ensisijainen avain: tosi). The koko nimi ja ikä ominaisuus ovat merkkijono (Tietotyypit. STRING) ja kokonaislukutyyppi (Tietotyypit. KOKONAISLUKU), vastaavasti. The työllistetty ominaisuus on boolen tyyppi, jonka oletusarvo on väärä, mikä tarkoittaa, että jos sitä ei ole määritetty, se asetetaan tietokannassa automaattisesti arvoon false.
Soita seuraavaksi synkronoida menetelmä mallissasi. Tämä menetelmä ottaa konfigurointiobjektin argumenttina. Konfigurointiobjektin vaihtoehdoista riippuen synkronoida menetelmä voi:
- User.sync(): Luo taulukko, jos sitä ei ole olemassa, eikä tee mitään, jos se on olemassa.
- User.sync({ force: true }): Luo taulukko ja pudota ensimmäinen, jos se on jo olemassa.
- User.sync({ alter: true }): Tarkista taulukon nykyinen tila tietokannasta ja tee taulukkoon tarvittavat muutokset, jotta se vastaa mallia.
Esimerkiksi:
User.sync().then(() => {
konsoli.Hirsi("Käyttäjämalli synkronoitu");
});
Yllä oleva koodilohko luo tietokantataulukon Käyttäjä malli, jos sitä ei ole olemassa, eikä tee mitään, jos se on olemassa.
Vie lopuksi mallisi:
moduuli.exports = Käyttäjä;
Kyselyt PostgreSQL-tietokannasta
Sequelize tarjoaa erilaisia menetelmiä, joiden avulla voit olla vuorovaikutuksessa PostgreSQL-tietokannan kanssa kirjoittamatta raakaa SQL-komennot.
Tietojen tallentaminen PostgreSQL: ään
Jos haluat tallentaa tiedot PostgreSQL-tietokantaan, soita luoda -menetelmää mallissasi ja anna argumenttina objekti, joka toteuttaa PostgreSQL-mallin.
Esimerkiksi:
konst mike = User.create({
sähköposti: "mike@email.com",
koko nimi: "Mike Smith",
ikä: 30,
työssä: totta,
});
Yllä oleva koodilohko luo a Käyttäjä esiintymä mike tietokannassasi ja luo automaattisesti yksilöllisen tunnuksen.
Tietojen hakeminen PostgreSQL: stä
Tiedot voidaan noutaa PostgreSQL-tietokannasta useilla tavoilla käyttämällä sequelize-toimintoa, mutta se riippuu vastaanotettavien tietojen luonteesta.
Yleisimmät menetelmät tietojen hakemiseen ovat löydä yksi ja löydä kaikki menetelmiä. The löydä kaikki palauttaa kaikki tietoesiintymät, jotka täyttävät tietyn kyselyn, while löydä yksi palauttaa ensimmäisen kyselyn tyydyttävän esiintymän.
Esimerkiksi:
// Etsi kaikki käyttäjät
konst käyttäjät = odottaa User.findAll();
Yllä oleva koodi palauttaa kaikki Käyttäjä tapauksia tietokannassa.
Voit suodattaa palautettujen tietojen läpi käyttämällä missä lausunto. Tämän lausekkeen avulla voit lisätä tiettyjä ehtoja kyselyyn. Kyselysi palauttaa vain esiintymät, jotka täyttävät nämä ehdot.
Esimerkiksi:
User.findAll({
missä: {
työssä: väärä
}
});
Yllä oleva koodi palauttaa kaikki Käyttäjä tapauksia heidän kanssaan työllistetty ominaisuus asetettu väärä tietokannassa.
Päivitetään PostgreSQL: n tietoja
Voit päivittää PostgreSQL-tietokannan tiedot soittamalla numeroon päivittää menetelmä ja suodattimen läpäiseminen argumenttina.
Esimerkiksi:
odottaa User.update({ työllistetty: totta }, {
missä: {
työssä: väärä
}
});
Yllä oleva koodi muuttaa kaiken Käyttäjä tapauksia, joissa on työllistetty jonkin arvo väärä to totta.
Vaihtoehtoisesti voit päivittää tiedot muokkaamalla manuaalisesti ominaisuuksia, joita haluat muuttaa, ja soittamalla Tallentaa tapausmenetelmä.
Esimerkiksi:
konst userMike = odottaa User.findOne({ missä: { sähköposti: "mike@email.com" } });
jos(userMike !== tyhjä) {
userMike.email = "uusiMike@gmail.com"
odottaa userMike.save()
}
Yllä oleva koodi kysyy tietokannasta käyttäjältä, jolla on sähköpostiosoite "mike@email.com", joka käyttää löydä yksi menetelmä. Jos käyttäjä löytyy, se määrittää sähköpostin ominaisuuden uudelleen osoitteeseen "newMike@gmail.com" ja soittaa Tallentaa tapa päivittää tietokanta.
Tietojen poistaminen PostgreSQL: stä
Voit poistaa PostgreSQL-tietoja soittamalla tuhota menetelmä ja suodattimen läpäiseminen argumenttina.
Esimerkiksi:
odottaa User.destroy({
missä: {
sähköposti: "uusiMike@gmail.com"
}
});
Yllä oleva koodi kysyy tietokannasta käyttäjältä, jonka sähköpostiosoite on "newMike@gmail.com", ja poistaa käyttäjän tietokannasta.
Edut PostgreSQL: n käyttämisestä Sequlizen kanssa
Raaka-SQL-kyselyjen kirjoittaminen vuorovaikutukseen PostgreSQL-tietokannan kanssa voi olla vaivalloista. Sequelizen avulla voit helposti määrittää malleja, luoda assosiaatioita niiden välille ja tehdä kyselyitä tietokannasta yksinkertaisen ja intuitiivisen API: n avulla. Vaihtoehtoisesti voit käyttää muita ORM: ia, kuten TypeORM: ia, vuorovaikutuksessa PostgreSQL-tietokannan kanssa ilman raaka-SQL-kyselyjen kirjoittamista.