Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

A Sequelize egy Node.js objektumrelációs leképező (ORM), amely könnyen használható API-t biztosít az olyan relációs adatbázisokhoz, mint az Oracle, PostgreSQL, MySQL, MariaDB, SQLite stb.

A PostgreSQL egy széles körben használt nyílt forráskódú relációs adatbázis-kezelő rendszer (RDBMS), amely kiterjedt szolgáltatásairól, kiváló biztonságáról és méretezhetőségéről híres.

A PostgreSQL kompatibilis több programozási nyelvvel, beleértve a JavaScriptet is, így ideális választás webes és adatvezérelt alkalmazásokhoz. Itt megtudhatja, hogyan állítson be Postgres adatbázist a Node.js-ben a Sequelise segítségével.

1. lépés: Függőségek telepítése

A PostgreSQL használatához telepítenie kell a rendszerére. A PostgreSQL letöltéséhez navigáljon a PostgreSQL webhely és válassza ki az operációs rendszert. Ha problémákat tapasztal a folyamat során a macOS rendszeren, nézze meg a PostgreSQL telepítése macOS-re.

instagram viewer

Alternatív megoldásként használhatja a PostgreSQL-t a felhőben olyan platformok kihasználásával, mint pl ElephantSQL amelyek a PostgreSQL-t kínálják szolgáltatásként.

Ezután telepítse folytatás a következő parancs futtatásával:

npm telepítési folytatás

Ezután telepítse a PostgreSQL adatbázis-illesztőprogramot az alábbi parancs futtatásával:

npm install pg pg-hstore

2. lépés: Csatlakozás PostgreSQL adatbázishoz

A projekt forráskönyvtárában hozzon létre egy config mappát. Ban,-ben config mappát, hozzon létre a db.js fájlt. Ez a fájl tartalmazza az összes kódot, amely összeköti a Node.js alkalmazást a PostgreSQL adatbázissal.

Következő, a tiédben db.js fájl, import Folytatás tól től folytatás.

const { Sequelize } = igényelnek("folytatás");

Ezután létre kell hoznia a Folytatás példa. Ez a példány a csatlakozási paramétereket, például az adatbázis nevét, a felhasználónevet és a jelszót veszi argumentumként. Alternatív megoldásként egyetlen kapcsolati URI-t használ argumentumként.

Például:

// Csatlakozási paraméterek
const folytatás = új Sequelise('adatbázis', 'felhasználónév', 'Jelszó')

// URI-vel
const folytatás = új Sorozat (process.env. POSTGRESQL_DB_URI)

Ezenkívül ez a konstruktor egy konfigurációs objektumot vesz fel opcionális argumentumként.

Ezután tesztelje a folytatásos kapcsolatot úgy, hogy hozzáadja a kódot az alá db.js fájl:

const testDbConnection = async () => {
próbáld ki {
várja sequelize.authenticate();
konzol.log("A kapcsolat sikeresen létrejött.");
} fogás (hiba) {
konzol.hiba("Nem lehet csatlakozni az adatbázishoz:", hiba);
}
};

A fenti kódblokk a folytatás.hitelesít() módszerrel ellenőrizheti, hogy a kapcsolat rendben van-e, és kinyomtatja a „Kapcsolat sikeresen létrejött” üzenetet. vigasztalni, ha igen. Ha kapcsolódási hiba történik, a hibával együtt a „Nem lehet csatlakozni az adatbázishoz:” szöveget írja ki.

Végül exportálja a Sequelise példányt és a testDbConnection funkció.

modult.exports = { négyzetméter: folytatás, testDbConnection };

3. lépés: Sequelize modell létrehozása

A projekt forráskönyvtárában hozzon létre egy modellek mappát. Ez a mappa tartalmazza az összes sorozatmodelljét. Ezután hozzon létre egy modellfájlt. A fájlnak adott névnek információt kell adnia a modell ábrázolásáról.

A modellfájlban importálja a Sequelise példányt.

// example.js
const { négyzet } = igényelnek("../config/db");

Ezután az importálás Adattípusok tól től folytatás.

const { Adattípusok } = igényelnek("folytatás");

Adattípusok lehetővé teszi a szükséges adattípus beállítását a modell minden egyes tulajdonságához.

Létrehozhat egy új, az adatbázisban lévő táblát reprezentáló sorozatmodellet a következő meghívásával meghatározni módszert a Sequelise példányon.

A meghatározni A metódus két argumentumot használ: a modell nevét és egy attribútum objektumot. A modellnév a modell nevét jelenti. Az attribútum objektum az adatbázis oszlopait képviseli, és minden tulajdonság egy oszlopot jelent.

Íme egy példa a folytatásos modellre:

const User = sq.define("felhasználó", {
email: {
típus: DataTypes. HÚR,
enableNull: hamis,
elsődleges kulcs: igaz,
},

teljes név: {
típus: DataTypes. HÚR,
},

életkor: {
típus: DataTypes. EGÉSZ SZÁM,
},

alkalmazott: {
típus: DataTypes. BOOLEAN,
alapértelmezett érték: hamis,
},
});

A fenti kódblokk meghatározza a Felhasználó modell egy email, teljes név, kor, és munkavállaló tulajdonságait.

A email A tulajdonság egy karakterlánc típus, amely nem lehet üres (allowNull: hamis), és elsődleges kulcsként is működik a Felhasználó asztal (elsődleges kulcs: igaz). A teljes név és a kor tulajdonság egy karakterlánc (Adattípusok. HÚR) és egész típusú (Adattípusok. EGÉSZ SZÁM), ill. A munkavállaló property egy logikai típus, amelynek alapértelmezett értéke hamis, ami azt jelenti, hogy ha nincs megadva, akkor automatikusan false értékre lesz állítva az adatbázisban.

Ezután hívja a szinkronizál módszer a modelleden. Ez a metódus egy konfigurációs objektumot vesz argumentumként. A konfigurációs objektum beállításaitól függően a szinkronizál a módszer képes:

  • User.sync(): A táblázat létrehozása, ha nem létezik, és nem csinál semmit, ha létezik.
  • User.sync({ force: true }): Hozza létre a táblázatot, és dobja el az elsőt, ha már létezik.
  • User.sync({ alter: true }): Ellenőrizze a tábla aktuális állapotát az adatbázisban, és hajtsa végre a szükséges módosításokat a táblán, hogy az megfeleljen a modellnek.

Például:

User.sync().then(() => {
konzol.log("Felhasználói modell szinkronizálva");
});

A fenti kódblokk létrehozza az adatbázistáblát a Felhasználó modell, ha nem létezik, és nem csinál semmit, ha létezik.

Végül exportálja a modellt:

modult.exports = Felhasználó;

PostgreSQL adatbázis lekérdezése

A Sequelise különféle módszereket kínál, amelyek lehetővé teszik a PostgreSQL-adatbázissal való interakciót a raw írása nélkül SQL parancsok.

Adatok mentése PostgreSQL-be

Adatok PostgreSQL adatbázisba mentéséhez hívja a teremt metódust a modellen, és adjon át egy objektumot, amely a PostgreSQL-modellt implementálja argumentumként.

Például:

const mike = User.create({
email: "[email protected]",
teljes név: "Mike Smith",
kor: 30,
munkavállaló: igaz,
});

A fenti kódblokk létrehozza a Felhasználó Például az mikrofon az adatbázisban, és automatikusan generál egy egyedi azonosítót.

Adatok lekérése a PostgreSQL-ből

A PostgreSQL adatbázisból a Sequelize segítségével többféle módon is lekérhetők adatok, de ez a fogadni kívánt adatok természetétől függ.

Az adatok lekérésének leggyakoribb módjai a találj egyet és Találd meg mindet mód. A Találd meg mindet visszaadja az összes adatpéldányt, amely megfelel egy adott lekérdezésnek, míg találj egyet az első olyan példányt adja vissza, amelyik kielégíti a lekérdezést.

Például:

// Az összes felhasználó keresése
const felhasználók = várja User.findAll();

A fenti kód visszaadja az összes Felhasználó példányok az adatbázisban.

A visszaküldött adatok között szűrhet a ahol nyilatkozat. Ez az utasítás lehetővé teszi bizonyos feltételek hozzáadását a lekérdezéshez. A lekérdezés csak azokat a példányokat adja vissza, amelyek megfelelnek ezeknek a feltételeknek.

Például:

User.findAll({
ahol: {
munkavállaló: hamis
}
});

A fenti kód visszaadja az összes Felhasználó esetek az övékkel munkavállaló tulajdonság beállítva hamis az adatbázisban.

Adatok frissítése a PostgreSQL-en

A PostgreSQL adatbázis adatait frissítheti a frissítés módszert, és argumentumként egy szűrőt adunk át.

Például:

várja User.update({ munkavállaló: igaz }, {
ahol: {
munkavállaló: hamis
}
});

A fenti kód megváltoztatja az összes Felhasználó példányok egy munkavállaló értéke hamis nak nek igaz.

Alternatív megoldásként frissítheti az adatokat úgy, hogy manuálisan módosítja a módosítani kívánt tulajdonságokat, és meghívja a megment módszer a példányon.

Például:

const userMike = várja User.findOne({ ahol: { email: "[email protected]" } });

ha(userMike !== nulla) {
userMike.email = [email protected]"
várja userMike.save()
}

A fenti kód lekérdezi az adatbázist a „[email protected]” e-mail-címmel rendelkező felhasználó számára találj egyet módszer. Ha megtalálja a felhasználót, újra hozzárendeli az e-mail tulajdonságot a „[email protected]” címhez, és felhívja a megment az adatbázis frissítésének módja.

Adatok törlése a PostgreSQL-ben

A PostgreSQL-en lévő adatokat törölheti a elpusztítani módszert, és argumentumként egy szűrőt adunk át.

Például:

várja User.destroy({
ahol: {
email: [email protected]"
}
});

A fenti kód lekérdezi az adatbázist egy „[email protected]” e-mail-címmel rendelkező felhasználó után, és törli a felhasználót az adatbázisból.

A PostgreSQL és a Sequlize használatának előnyei

Nyers SQL-lekérdezések írása a PostgreSQL-adatbázissal való interakcióhoz gondot okozhat. A Sequelize segítségével egyszerűen definiálhat modelleket, hozhat létre köztük asszociációkat, és lekérdezheti az adatbázist egy egyszerű és intuitív API segítségével. Alternatív megoldásként használhat más ORM-eket, például a TypeORM-et, hogy kölcsönhatásba léphessen egy PostgreSQL-adatbázissal anélkül, hogy a nyers SQL-lekérdezések megírásával kellene foglalkoznia.