CRUD API spravuje data prostřednictvím čtyř základních databázových operací: vytváření, čtení, aktualizace a mazání. Můžete vytvořit jednoduché CRUD API pouze s Express a PostgreSQL databází.

Začněte vytvořením Express serveru, ke kterému připojíte PostgreSQL. Poté vytvořte funkce CRUD a připojte je ke koncovým bodům API. Jakmile tak učiníte, budete moci připojit Node k PostgreSQL a provádět databázové dotazy na každé trase.

Předpoklady pro sestavení API

Chcete-li pokračovat v tomto tutoriálu, měli byste:

  • Nainstalujte Node na váš počítač.
  • Nainstalujte server PostgreSQL na váš počítač.
  • Mít základní znalosti Express.js.

Vytvořte expresní server

Na vytvořit expresní server, začněte vytvořením nového adresáře a zadáním:

mkdir poznámky
CD poznámky

Poté inicializujte npm:

npm init -y

Tento příkaz vygeneruje a package.json soubor ve složce poznámky. Nakonec nainstalujte Express.

npm Nainstalujte vyjádřit

Vytvořte nový soubor s názvem index.js a přidejte následující kód.

konst vyjádřit = vyžadovat("vyjádřit");
konst app = express();

aplikace.použití(vyjádřit.urlencoded({
prodlouženo: skutečný
}));

instagram viewer

aplikace.použití(vyjádřit.json())
app.listen (3000, () => console.log("Poslech na portu 3000"));

Tím se vytvoří nový server naslouchající na portu 3000.

Vytvořte databázi PostgreSQL

Provedením následujícího příkazu v příkazovém řádku psql vytvořte databázi PostgreSQL s názvem notedb.

postgres=# CREATE DATABASE noteb;

Spusťte tento příkaz seznam všech databází Postgres a zkontrolujte, že jste vytvořili databázi notedb:

postgres=# \l

Připojte se k databázi

Pěkně popořádku, připojte aplikaci Node k serveru PostgreSQL. Můžete použít modul node-Postgres.

Pro instalaci přes npm spusťte následující:

npm Nainstalujte str

Osvědčeným postupem je připojení k databázi v samostatném souboru.

Vytvořte nový soubor s názvem db.js a přidejte následující.

konst { Klient } = vyžadovat("pg");
konst { uživatel, hostitel, databáze, heslo, port } = vyžadovat(./dbConfig");

konst klient = Nový Klient({
uživatel,
hostitel,
databáze,
Heslo,
přístav,
});

klienta.připojit();
modul.exportů = klient;

Zde exportujete připojovací řetězec, který budete používat ke komunikaci s databází. Všimněte si, že čtete nastavení připojení k databázi z konfiguračního souboru s názvem dbConfig.js. Vytvořte proto dbConfig.js a přidejte do něj následující data.

modul.exportů = {
uživatel: "{dbUser}",
hostitel: "{dbHost}",
databáze: "notedb",
Heslo: "{dbPassword}",
port: 5432,
};

Nezapomeňte nahradit podrobnosti databáze svými vlastními místními hodnotami.

Vytvořte tabulku PostgreSQL

V příkazovém řádku psql vytvořte tabulku s názvem notes. Chcete-li začít, připojte se k databázi notedb pomocí příkazu \c.

postgres=# \c poznamenánob

Dále vytvořte tabulku v připojené databázi pomocí příkazu CREATE TABLE.

notedb=# poznámky CREATE TABLE (
ID SÉRIOVÝ PRIMÁRNÍ KLÍČ,
poznámka VARCHAR(255)
);

Tato tabulka je docela jednoduchá. Má pouze ID, což je automaticky generovaný primární klíč, a textové pole s názvem note.

Vytvořte poznámku

Místo provádění operací CRUD v trasách vytvořte funkce, které budou interagovat s databází v samostatném souboru.

Vytvořte pomocný soubor s názvem helper.js a importujte objekt připojení z db.js.

konst klient = vyžadovat(./db");

Pomocí následujícího kódu vytvořte funkci createNote().

konst createNote = (req, res) => {
Snaž se {
konst { poznámka } = req.body;

if (!pozn.) {
házetChyba(„Poslat poznámku v tělo žádosti");
}

klienta.dotaz(
"VLOŽITDO poznámky (poznámka) HODNOTY ($1)",
[Poznámka],
(chyba, data) => {
res.postavení(201).json({
chyba: nula,
zpráva: "Vytvořena nová poznámka",
});
}
);
} úlovek (chyba) {
res.postavení(500).json({
chyba: chyba.zpráva,
zpráva: „Nepodařilo se vytvořitNový Poznámka",
});
}
};

Tato funkce nejprve zkontroluje, zda tělo požadavku obsahovalo poznámku. Pokud poznámka chybí, vyvolá chybu.

K vytvoření poznámky funkce používá klauzuli INSERT. Vrátí objekt JSON obsahující nulovou chybovou zprávu a v případě úspěchu zprávu o úspěchu.

Získejte všechny poznámky

Chcete-li získat všechny poznámky z tabulky, použijte klauzuli SELECT *.

konst getNotes = (req, res) => {
Snaž se {
client.query("VYBRAT * Z poznámek", (chyba, data) => {
-li (chybovat) házet chybovat;

res.postavení(200).json({
chybovat: nula,
poznámky: data.řádky,
});
});
} úlovek (chyba) {
res.postavení(500).json({
chybovat: chyba.zpráva,
poznámky: nula,
});
}
};

getNotes() odešle pole poznámek v objektu odpovědi, pokud je dotaz úspěšný.

Získejte poznámku podle ID

Rozhraní API bude mít také koncový bod, který vrací poznámku podle ID. V helper.js přidejte funkci getNoteById().

konst getNoteById = (req, res) => {
Snaž se {
konst { id } = req.params;
client.query("SELECT * FROM notes WHERE id=$1", [id], (chyba, data) => {
-li (chybovat) házet chybovat;
res.postavení(200).json({
chybovat: nula,
Poznámka: data.řádky[0],
});
});
} úlovek (chyba) {
res.postavení(500).json({
chybovat: chybovat.zpráva,
Poznámka: nula,
});
}
};

Tato funkce vrátí objekt JSON obsahující poznámku a chybový objekt.

Aktualizovat poznámku podle ID

Chcete-li poznámku aktualizovat, potřebujete poznámku a ID této poznámky. Poznámku získáte z těla požadavku a ID z adresy URL.

Funkce updateNoteById() používá klauzuli UPDATE k aktualizaci existující poznámky novou poznámkou.

konst updateNoteById = (req, res) => {
Snaž se {
konst { id } = req.params;
konst { poznámka } = req.body;
klienta.dotaz(
"AKTUALIZACE poznámky SOUBOR poznámka = $1KDEid = $2",
[poznámka, id],
(chyba, data) => {
-li (chybovat) házet chybovat;

res.postavení(201).json({
chybovat: nula,
zpráva: "Aktualizovaná poznámka",
});
}
);
} úlovek (chyba) {
res.postavení(500).json({
chybovat: chyba.zpráva,
zpráva: "Aktualizace poznámky se nezdařila",
});
}
};

Tato funkce vrátí zprávu o úspěchu, pokud je tabulka aktualizována, a chybovou zprávu, pokud ne.

Smazat poznámku podle ID

Chcete-li odstranit poznámku podle ID z tabulky, použijte následující kód.

konst deleteNote = (req, res) => {
Snaž se {
konst { id } = req.params;
client.query("DELETE FROM notes WHERE id=$1", [id], (chyba, data) => {
-li (chybovat) házet chybovat;

res.postavení(200).json({
chyba: nula,
zpráva: "Poznámka smazána",
});
});
} úlovek (chyba) {
res.postavení(500).json({
chyba: chyba.zpráva,
zpráva: "Poznámku se nepodařilo smazat",
});
}
};

Nyní, když jste vytvořili všechny funkce CRUD, exportujte je.

V helper.js přidejte následující.

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

Budete je importovat index.js při vytváření koncových bodů API.

Vytvořte trasy API

Posledním krokem je vytvoření koncových bodů API index.js pro každou z operací CRUD.

Začněte importem souboru helper.js.

konst db = vyžadovat("./pomocník")

Dále vytvořte 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 pro aktualizaci vaší databáze

Až budete hotovi, můžete zkontrolovat, zda vaše API funguje pomocí klienta REST, jako je Postman, nebo napsáním testů jednotek. Měli byste být schopni zajistit, aby všech pět koncových bodů fungovalo tak, jak očekáváte.

Data, která jste přidali do databáze, můžete také kontrolovat a spravovat pomocí nástroje pgAdmin. Je to GUI aplikace, která usnadňuje provádění administrace databáze a interakci se servery PostgreSQL.