A CRUD API négy alapvető adatbázis-művelettel kezeli az adatokat: létrehozás, olvasás, frissítés és törlés. Létrehozhat egy egyszerű CRUD API-t csak Expressz és egy PostgreSQL adatbázis segítségével.
Kezdje azzal, hogy hozzon létre egy Express szervert, amelyhez csatlakoztatja a PostgreSQL-t. Ezután hozza létre a CRUD függvényeket, és csatlakoztassa őket API-végpontokhoz. Ha ezt megtette, csatlakoztathatja a Node-ot a PostgreSQL-hez, és adatbázis-lekérdezéseket hajthat végre az egyes útvonalakon.
Az API felépítésének előfeltételei
Az oktatóanyag követéséhez a következőket kell tennie:
- Telepítse a Node-ot a gépére.
- Telepítse a PostgreSQL szervert a gépére.
- Alapvető ismeretekkel rendelkezzen Express.js.
Hozzon létre egy Express szervert
Nak nek hozzon létre egy Express szervert, először hozzon létre egy új könyvtárat, és írja be:
mkdir megjegyzi
CD jegyzetek
Ezután inicializálja az npm-et:
npm init -y
Ez a parancs generál a package.json fájlt a jegyzetek mappájában. Végül telepítse az Express-t.
npm telepítés Expressz
Hozzon létre egy új fájlt, melynek neve index.js és adja hozzá a következő kódot.
const expressz = igényelnek("Expressz");
const app = express();kb.használat(Expressz.urlencoded({
kiterjedt: igaz
}));
kb.használat(Expressz.json())
app.listen (3000, () => console.log("Hallgatás a 3000-es porton"));
Ez létrehoz egy új kiszolgálót, amely a 3000-es porton figyel.
Hozzon létre egy PostgreSQL adatbázist
A notedb nevű PostgreSQL adatbázis létrehozásához hajtsa végre a következő parancsot a psql parancssorban.
postgres=# ADATBÁZIS LÉTREHOZÁSA noteb;
Futtassa ezt a parancsot listázza ki az összes Postgres adatbázist és ellenőrizze, hogy létrehozta-e a notedb adatbázist:
postgres=# \l
Csatlakozzon az adatbázishoz
Először is, csatlakoztassa a Node alkalmazást a PostgreSQL szerverhez. Használhatja a node-Postgres modult.
Futtassa a következőt az npm-en keresztüli telepítéshez:
npm telepítés old
Jó gyakorlatként csatlakozzon az adatbázishoz egy külön fájlban.
Hozzon létre egy új fájlt, melynek neve db.js és adja hozzá a következőket.
const { Ügyfél } = igényelnek("pg");
const { felhasználó, gazdagép, adatbázis, jelszó, port } = igényelnek(./dbConfig");const ügyfél = új Ügyfél({
felhasználó,
házigazda,
adatbázis,
Jelszó,
kikötő,
});
ügyfél.csatlakozni();
modult.export = ügyfél;
Itt exportálja a kapcsolati karakterláncot, amelyet az adatbázissal való kommunikációhoz fog használni. Vegye figyelembe, hogy az adatbázis-kapcsolat beállításait egy nevű konfigurációs fájlból olvassa be dbConfig.js. Ezért hozza létre a dbConfig.js fájlt, és adja hozzá a következő adatokat.
modult.export = {
felhasználó: "{dbUser}",
házigazda: "{dbHost}",
adatbázis: "megjegyezteb",
Jelszó: "{dbPassword}",
port: 5432,
};
Ne felejtse el lecserélni az adatbázis adatait saját helyi értékeire.
Hozzon létre egy PostgreSQL táblát
A psql parancssorban hozzon létre egy notes nevű táblát. Először csatlakozzon a notedb adatbázishoz a \c paranccsal.
postgres=# \c megjegyezteb
Ezután hozzon létre egy táblát a csatlakoztatott adatbázisban a CREATE TABLE paranccsal.
megjegyezteb=# CREATE TABLE jegyzetek (
ID SOROZAT ELSŐDLEGES KULCS,
megjegyzés VARCHAR(255)
);
Ez a táblázat meglehetősen egyszerű. Csak egy azonosítója van, amely egy automatikusan generált elsődleges kulcs és egy megjegyzés nevű szövegmező.
Jegyzet létrehozása
Ahelyett, hogy a CRUD-műveleteket hajtaná végre az útvonalakban, hozzon létre olyan függvényeket, amelyek külön fájlban működnek együtt az adatbázissal.
Hozzon létre egy segédfájlt, melynek neve helper.js és importálja a kapcsolatobjektumot a db.js-ből.
const ügyfél = igényelnek(./db");
Használja a következő kódot a createNote() függvény létrehozásához.
const createNote = (req, res) => {
próbálja meg {
const { jegyzet } = req.body;if (!megjegyzés) {
dobásHiba("Jegyzet küldése ban ben kérelmező szerv");
}
ügyfél.lekérdezés(
"BESZÁLLÍTÁSBA jegyzetek (jegyzet) ÉRTÉKEK ($1)",
[jegyzet],
(hiba, adat) => {
res.állapot(201).json({
hiba: nulla,
üzenet: "Új jegyzet létrehozva",
});
}
);
} fogás (hiba) {
res.állapot(500).json({
hiba: hiba.üzenet,
üzenet: "Nem sikerült teremtúj jegyzet",
});
}
};
Ez a funkció először ellenőrzi, hogy a kérés törzse tartalmaz-e megjegyzést. Ha a jegyzet hiányzik, hibát jelez.
Jegyzet létrehozásához a függvény az INSERT záradékot használja. Egy null hibaüzenetet és sikerüzenetet tartalmazó JSON-objektumot ad vissza.
Get All Notes
A táblázat összes jegyzetének lekéréséhez használja a SELECT * záradékot.
const getNotes = (req, res) => {
próbálja meg {
client.query("SELECT * FROM jegyzetekből", (hiba, adat) => {
ha (téved) dobás téved;
res.állapot(200).json({
téved: nulla,
jegyzetek: adat.sorok,
});
});
} fogás (hiba) {
res.állapot(500).json({
téved: hiba.üzenet,
megjegyzések: nulla,
});
}
};
A getNotes() elküldi a megjegyzések tömbjét a válaszobjektumban, ha a lekérdezés sikeres.
Jegyzet beszerzése azonosító alapján
Az API-nak lesz egy végpontja is, amely azonosító alapján ad vissza megjegyzést. A helper.js fájlban adjon hozzá egy getNoteById() függvényt.
const getNoteById = (req, res) => {
próbálja meg {
const { id } = req.params;
client.query("SELECT * FROM jegyzetek WHERE id=$1", [id], (hiba, adat) => {
ha (téved) dobás téved;
res.állapot(200).json({
téved: nulla,
jegyzet: adat.sorok[0],
});
});
} fogás (hiba) {
res.állapot(500).json({
téved: téved.üzenet,
jegyzet: nulla,
});
}
};
Ez a függvény a megjegyzést és egy hibaobjektumot tartalmazó JSON-objektumot ad vissza.
Jegyzet frissítése azonosító alapján
Egy jegyzet frissítéséhez jegyzetre és a jegyzet azonosítójára van szükség. A feljegyzést a kérelem törzséből, az azonosítót pedig az URL-ből kapja meg.
Az updateNoteById() függvény az UPDATE záradékot használja egy meglévő jegyzet új megjegyzéssel történő frissítéséhez.
const updateNoteById = (req, res) => {
próbálja meg {
const { id } = req.params;
const { jegyzet } = req.body;
ügyfél.lekérdezés(
"FRISSÍTÉS jegyzetek KÉSZLET jegyzet = $1AHOLid = $2",
[megjegyzés, azonosító],
(hiba, adat) => {
ha (téved) dobás téved;
res.állapot(201).json({
téved: nulla,
üzenet: "Frissített jegyzet",
});
}
);
} fogás (hiba) {
res.állapot(500).json({
téved: hiba.üzenet,
üzenet: "Nem sikerült frissíteni a jegyzetet",
});
}
};
Ez a függvény sikerüzenetet ad vissza, ha a táblázat frissül, és hibaüzenetet, ha nem.
Jegyzet törlése azonosító alapján
Az alábbi kóddal törölhet egy jegyzetet azonosító alapján a táblázatból.
const deleteNote = (req, res) => {
próbálja meg {
const { id } = req.params;
client.query("DELETE FROM jegyzetek WHERE id=$1", [id], (hiba, adat) => {
ha (téved) dobás téved;
res.állapot(200).json({
hiba: nulla,
üzenet: "Megjegyzés törölve",
});
});
} fogás (hiba) {
res.állapot(500).json({
hiba: hiba.üzenet,
üzenet: "Nem sikerült törölni a jegyzetet",
});
}
};
Most, hogy az összes CRUD függvényt létrehozta, exportálja azokat.
A helper.js fájlban adja hozzá a következőket.
modult.export = { CreateNote, getNotes, getNoteById, updateNoteById, deleteNote };
Be fogod importálni őket index.js az API végpontok létrehozásakor.
API-útvonalak létrehozása
Az utolsó lépés az API-végpontok létrehozása index.js minden egyes CRUD-művelethez.
Kezdje a helper.js fájl importálásával.
const db = igényelnek("./segítő")
Ezután hozzon létre minden végpontot.
app.get("/notes", db.getNotes);
app.get("/note/:id", db.getNoteById);
app.put("/note/:id", db.updateNoteById);
app.post("/note", db.createNote);
app.delete("/note/:id", db.deleteNote);
REST API az adatbázis frissítéséhez
Ha végzett, egy REST-kliens (például a Postman) használatával vagy egységtesztek írásával ellenőrizheti, hogy az API működik-e. Biztosítania kell, hogy az öt végpont mind a várt módon működjön.
Az adatbázishoz hozzáadott adatokat a pgAdmin eszközzel is megtekintheti és kezelheti. Ez egy grafikus felhasználói felület, amely megkönnyíti az adatbázis-adminisztráció végrehajtását és a PostgreSQL szerverekkel való interakciót.