CRUD API spravuje údaje prostredníctvom štyroch základných databázových operácií: vytváranie, čítanie, aktualizácia a mazanie. Môžete vytvoriť jednoduché CRUD API iba s Express a PostgreSQL databázou.

Začnite vytvorením expresného servera, ku ktorému pripojíte PostgreSQL. Potom vytvorte funkcie CRUD a pripojte ich ku koncovým bodom API. Keď tak urobíte, budete môcť pripojiť Node k PostgreSQL a vykonávať databázové dotazy na každej trase.

Predpoklady pre zostavenie API

Ak chcete postupovať podľa tohto návodu, mali by ste:

  • Nainštalujte Node do svojho počítača.
  • Nainštalujte PostgreSQL server na váš počítač.
  • Majte základné znalosti Express.js.

Vytvorte expresný server

Komu vytvorte expresný server, začnite vytvorením nového adresára a jeho zadaním:

mkdir poznámky
cd poznámky

Potom inicializujte npm:

npm init -y

Tento príkaz vygeneruje a package.json súbor v priečinku poznámky. Nakoniec nainštalujte Express.

npm Inštalácia expresné

Vytvorte nový súbor s názvom index.js a pridajte nasledujúci kód.

konšt
instagram viewer
vyjadriť = vyžadovať("expresné");
konšt app = express();

aplikácie.používať(expresné.urlencoded({
rozšírené: pravda
}));

aplikácie.používať(expresné.json())
app.listen (3000, () => console.log("Počúvanie na porte 3000"));

Tým sa vytvorí nový server počúvajúci na porte 3000.

Vytvorte databázu PostgreSQL

V príkazovom riadku psql vykonajte nasledujúci príkaz, aby ste vytvorili databázu PostgreSQL s názvom notedb.

postgres=# CREATE DATABASE noteb;

Spustite tento príkaz zoznam všetkých databáz Postgres a skontrolujte, či ste vytvorili databázu notedb:

postgres=# \l

Pripojte sa k databáze

Najprv veci, pripojte svoju aplikáciu Node k serveru PostgreSQL. Môžete použiť modul node-Postgres.

Spustite nasledovné, aby ste ho nainštalovali cez npm:

npm Inštalácia str

Osvedčeným postupom je pripojenie k databáze v samostatnom súbore.

Vytvorte nový súbor s názvom db.js a pridajte nasledujúce.

konšt { Klient } = vyžadovať("pg");
konšt { používateľ, hostiteľ, databáza, heslo, port } = vyžadovať(./dbConfig");

konšt klient = Nový Zákazník({
užívateľ,
hostiteľ,
databáza,
heslo,
prístav,
});

zákazník.spojiť();
modul.exportov = klient;

Tu exportujete reťazec pripojenia, ktorý budete používať na komunikáciu s databázou. Všimnite si, že čítate nastavenia pripojenia k databáze z konfiguračného súboru s názvom dbConfig.js. Preto vytvorte súbor dbConfig.js a pridajte k nemu nasledujúce údaje.

modul.exportov = {
užívateľ: "{dbUser}",
hostiteľ: "{dbHost}",
databáza: "notedb",
heslo: "{dbPassword}",
port: 5432,
};

Nezabudnite nahradiť údaje databázy vašimi vlastnými miestnymi hodnotami.

Vytvorte tabuľku PostgreSQL

V príkazovom riadku psql vytvorte tabuľku s názvom notes. Ak chcete začať, pripojte sa k databáze notedb pomocou príkazu \c.

postgres=# \c poznačenéb

Potom vytvorte tabuľku v pripojenej databáze pomocou príkazu CREATE TABLE.

notedb=# poznámky CREATE TABLE (
ID SÉRIOVÝ PRIMÁRNY KĽÚČ,
poznámka VARCHAR(255)
);

Táto tabuľka je celkom jednoduchá. Má iba ID, čo je automaticky vygenerovaný primárny kľúč a textové pole s názvom poznámka.

Vytvorte poznámku

Namiesto vykonávania operácií CRUD v trasách vytvorte funkcie, ktoré budú interagovať s databázou v samostatnom súbore.

Vytvorte pomocný súbor s názvom helper.js a importujte objekt pripojenia z db.js.

konšt klient = vyžadovať(./db");

Na vytvorenie funkcie createNote() použite nasledujúci kód.

konšt createNote = (req, res) => {
skúste {
konšt { poznámka } = req.body;

if (!poznámka) {
hodiťChyba(„Odoslať poznámku v telo žiadosti");
}

zákazník.dopyt(
"VLOŽIŤDO poznámky (poznámka) HODNOTY ($1)",
[Poznámka],
(chyba, údaje) => {
res.postavenie(201).json({
chyba: nulový,
správa: "Bola vytvorená nová poznámka",
});
}
);
} chytiť (chyba) {
res.postavenie(500).json({
chyba: chyba.správa,
správa: „Nepodarilo sa vytvoriťNový Poznámka",
});
}
};

Táto funkcia najprv skontroluje, či telo požiadavky obsahovalo poznámku. Ak poznámka chýba, vyhodí chybu.

Na vytvorenie poznámky funkcia používa klauzulu INSERT. Vracia objekt JSON obsahujúci nulovú chybovú správu a v prípade úspechu správu o úspechu.

Získajte všetky poznámky

Ak chcete získať všetky poznámky z tabuľky, použite klauzulu SELECT *.

konšt getNotes = (req, res) => {
skúste {
client.query("VYBERTE * Z poznámok", (chyba, údaje) => {
ak (chyba) hodiť chybovať;

res.postavenie(200).json({
chyba: nulový,
poznámky: údajov.riadkov,
});
});
} chytiť (chyba) {
res.postavenie(500).json({
chybovať: chyba.správa,
poznámky: nulový,
});
}
};

getNotes() odošle pole poznámok v objekte odpovede, ak je dotaz úspešný.

Získajte poznámku podľa ID

Rozhranie API bude mať aj koncový bod, ktorý vráti poznámku podľa ID. V súbore helper.js pridajte funkciu getNoteById().

konšt getNoteById = (req, res) => {
skúste {
konšt { id } = req.params;
client.query("SELECT * FROM notes WHERE id=$1", [id], (chyba, údaje) => {
ak (chyba) hodiť chybovať;
res.postavenie(200).json({
chyba: nulový,
Poznámka: údajov.riadkov[0],
});
});
} chytiť (chyba) {
res.postavenie(500).json({
chybovať: chybovať.správa,
Poznámka: nulový,
});
}
};

Táto funkcia vráti objekt JSON obsahujúci poznámku a chybový objekt.

Aktualizovať poznámku podľa ID

Ak chcete aktualizovať poznámku, potrebujete poznámku a ID tejto poznámky. Poznámku získate z tela žiadosti a ID z adresy URL.

Funkcia updateNoteById() používa klauzulu UPDATE na aktualizáciu existujúcej poznámky novou poznámkou.

konšt updateNoteById = (req, res) => {
skúste {
konšt { id } = req.params;
konšt { poznámka } = req.body;
zákazník.dopyt(
"AKTUALIZOVAŤ poznámky SET poznámka = $1KDEid = $2",
[poznámka, id],
(chyba, údaje) => {
ak (chyba) hodiť chybovať;

res.postavenie(201).json({
chyba: nulový,
správa: "Aktualizovaná poznámka",
});
}
);
} chytiť (chyba) {
res.postavenie(500).json({
chybovať: chyba.správa,
správa: "Poznámku sa nepodarilo aktualizovať",
});
}
};

Táto funkcia vráti správu o úspechu, ak je tabuľka aktualizovaná, a chybovú správu, ak nie je.

Odstrániť poznámku podľa ID

Ak chcete odstrániť poznámku podľa ID z tabuľky, použite nasledujúci kód.

konšt deleteNote = (req, res) => {
skúste {
konšt { id } = req.params;
client.query("DELETE FROM notes WHERE id=$1", [id], (chyba, údaje) => {
ak (chyba) hodiť chybovať;

res.postavenie(200).json({
chyba: nulový,
správa: "Poznámka vymazaná",
});
});
} chytiť (chyba) {
res.postavenie(500).json({
chyba: chyba.správa,
správa: "Poznámku sa nepodarilo odstrániť",
});
}
};

Teraz, keď ste vytvorili všetky funkcie CRUD, exportujte ich.

V súbore helper.js pridajte nasledujúce.

modul.exportov = { createNote, getNotes, getNoteById, updateNoteById, deleteNote };

Budete ich importovať index.js pri vytváraní koncových bodov API.

Vytvorte trasy API

Posledným krokom je vytvorenie koncových bodov API index.js pre každú operáciu CRUD.

Začnite importovaním súboru helper.js.

konšt db = vyžadovať(./helper)

Ďalej vytvorte každý koncový bod.

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 na aktualizáciu vašej databázy

Po dokončení môžete skontrolovať, či vaše rozhranie API funguje pomocou klienta REST, ako je Postman, alebo napísaním jednotkových testov. Mali by ste byť schopní zabezpečiť, aby všetkých päť koncových bodov fungovalo tak, ako očakávate.

Údaje, ktoré ste pridali do databázy, môžete tiež kontrolovať a spravovať pomocou nástroja pgAdmin. Je to GUI aplikácia, ktorá uľahčuje vykonávanie správy databázy a interakciu so servermi PostgreSQL.