CRUD API pārvalda datus, izmantojot četras pamata datu bāzes darbības: izveidošana, lasīšana, atjaunināšana un dzēšana. Varat izveidot vienkāršu CRUD API, izmantojot tikai Express un PostgreSQL datu bāzi.

Sāciet, izveidojot Express serveri, ar kuru izveidosiet savienojumu ar PostgreSQL. Pēc tam izveidojiet CRUD funkcijas un savienojiet tās ar API galapunktiem. Kad tas būs izdarīts, varēsit savienot Node ar PostgreSQL un veikt datu bāzes vaicājumus katrā maršrutā.

API izveides priekšnosacījumi

Lai sekotu šai apmācībai, jums vajadzētu:

  • Instalējiet Node savā datorā.
  • Instalējiet PostgreSQL serveri savā datorā.
  • Ir pamatzināšanas par Express.js.

Izveidojiet Express serveri

Uz izveidot Express serveri, sāciet, izveidojot jaunu direktoriju un ievadot to:

mkdir piezīmes
cd piezīmes

Pēc tam inicializējiet npm:

npm init -y

Šī komanda ģenerēs a pack.json failu piezīmju mapē. Visbeidzot, instalējiet Express.

npm uzstādīt izteikt

Izveidojiet jaunu failu ar nosaukumu index.js un pievienojiet šādu kodu.

konst izteikt = 
pieprasīt("izteikt");
konst lietotne = express();

lietotne.izmantot(izteikt.urlencoded({
pagarināts: taisnība
}));

lietotne.izmantot(izteikt.json())
app.listen (3000, () => console.log("Klausīšanās portā 3000"));

Tādējādi tiks izveidots jauns serveris, kas klausās portā 3000.

Izveidojiet PostgreSQL datu bāzi

Izpildiet šo komandu psql komandu uzvednē, lai izveidotu PostgreSQL datu bāzi ar nosaukumu notedb.

postgres=# IZVEIDOT DATU BĀZI noteb;

Palaidiet šo komandu uz uzskaitiet visas Postgres datu bāzes un pārbaudiet, vai esat izveidojis noteb datu bāzi:

postgres=# \l

Izveidojiet savienojumu ar datu bāzi

Pirmās lietas vispirms, savienojiet savu Node lietojumprogrammu ar PostgreSQL serveri. Varat izmantot moduli node-Postgres.

Lai to instalētu, izmantojot npm, veiciet tālāk norādītās darbības.

npm uzstādīt lpp

Laba prakse ir izveidot savienojumu ar datubāzi atsevišķā failā.

Izveidojiet jaunu failu ar nosaukumu db.js un pievienojiet tālāk norādīto.

konst {Klients} = pieprasīt("pg");
konst { lietotājs, saimniekdators, datu bāze, parole, ports} = pieprasīt(./dbConfig");

konst klients = jauns Klients({
lietotājs,
saimnieks,
datu bāze,
parole,
osta,
});

klients.pieslēgties();
modulis.eksportu = klients;

Šeit jūs eksportējat savienojuma virkni, kuru izmantosit, lai sazinātos ar datu bāzi. Ņemiet vērā, ka jūs lasāt datu bāzes savienojuma iestatījumus no konfigurācijas faila ar nosaukumu dbConfig.js. Tāpēc izveidojiet dbConfig.js un pievienojiet tam šādus datus.

modulis.eksportu = {
lietotājs: "{dbUser}",
saimniekdators: "{dbHost}",
datu bāze: "atzīmējab",
parole: "{dbPassword}",
ports: 5432,
};

Atcerieties datu bāzes informāciju aizstāt ar savām vietējām vērtībām.

Izveidojiet PostgreSQL tabulu

Psql komandu uzvednē izveidojiet tabulu ar nosaukumu piezīmes. Lai sāktu, izveidojiet savienojumu ar notedb datu bāzi, izmantojot komandu \c.

postgres=# \c atzīmējab

Pēc tam pievienojiet tabulu pievienotajā datu bāzē, izmantojot komandu CREATE TABLE.

noteb=# IZVEIDOT TABULAS piezīmes (
ID SĒRIJAS PRIMĀRĀ ATSLĒGA,
piezīme VARCHAR(255)
);

Šī tabula ir diezgan vienkārša. Tam ir tikai ID, kas ir automātiski ģenerēta primārā atslēga, un teksta lauks, ko sauc par piezīmi.

Izveidojiet piezīmi

Tā vietā, lai veiktu CRUD darbības maršrutos, atsevišķā failā izveidojiet funkcijas, kas mijiedarbosies ar datu bāzi.

Izveidojiet palīga failu ar nosaukumu palīgs.js un importējiet savienojuma objektu no db.js.

konst klients = pieprasīt(./db");

Izmantojiet šo kodu, lai izveidotu CreateNote() funkciju.

konst createNote = (req, res) => {
mēģināt {
konst {piezīme} = req.body;

if (!piezīme) {
mestKļūda("Nosūtīt piezīmi iekšā pieprasījuma iestāde");
}

klients.query(
"IEVIETOTINTO piezīmes (piezīme) VĒRTĪBAS ($1)",
[Piezīme],
(kļūda, dati) => {
res.statuss(201).json({
kļūda: null,
ziņa: "Izveidota jauna piezīme",
});
}
);
} noķert (kļūda) {
res.statuss(500).json({
kļūda: kļūda.ziņa,
ziņojums: "Neizdevās izveidotjauns Piezīme",
});
}
};

Šī funkcija vispirms pārbauda, ​​vai pieprasījuma pamattekstā ir iekļauta piezīme. Ja piezīmes nav, tas rada kļūdu.

Lai izveidotu piezīmi, funkcija izmanto INSERT klauzulu. Tas atgriež JSON objektu, kurā ir nulles kļūdas ziņojums un veiksmes ziņojums, ja tas ir izdevies.

Saņemiet visas piezīmes

Lai iegūtu visas piezīmes no tabulas, izmantojiet klauzulu SELECT *.

konst getNotes = (req, res) => {
mēģināt {
client.query("SELECT * FROM piezīmēm", (kļūda, dati) => {
ja (kļūda) mest kļūdīties;

res.statuss(200).json({
kļūda: null,
piezīmes: datus.rindas,
});
});
} noķert (kļūda) {
res.statuss(500).json({
kļūda: kļūda.ziņa,
piezīmes: null,
});
}
};

getNotes() nosūta piezīmju masīvu atbildes objektā, ja vaicājums ir veiksmīgs.

Saņemiet piezīmi pēc ID

API būs arī galapunkts, kas atgriež piezīmi pēc ID. Vietnē helper.js pievienojiet funkciju getNoteById().

konst getNoteById = (req, res) => {
mēģināt {
konst {id} = req.params;
client.query("SELECT * FROM piezīmēm WHERE id=$1", [id], (kļūda, dati) => {
ja (kļūda) mest kļūdīties;
res.statuss(200).json({
kļūda: null,
Piezīme: datus.rindas[0],
});
});
} noķert (kļūda) {
res.statuss(500).json({
kļūda: kļūda.ziņa,
Piezīme: null,
});
}
};

Šī funkcija atgriezīs JSON objektu, kurā ir piezīme un kļūdas objekts.

Atjaunināt piezīmi pēc ID

Lai atjauninātu piezīmi, ir nepieciešama piezīme un šīs piezīmes ID. Jūs saņemsiet piezīmi no pieprasījuma pamatteksta un ID no URL.

Funkcija updateNoteById() izmanto klauzulu UPDATE, lai atjauninātu esošu piezīmi ar jaunu.

konst updateNoteById = (req, res) => {
mēģināt {
konst {id} = req.params;
konst {piezīme} = req.body;
klients.query(
"ATJAUNINĀT piezīmes IESTATĪT piezīme = $1KURid = $2",
[piezīme, id],
(kļūda, dati) => {
ja (kļūda) mest kļūdīties;

res.statuss(201).json({
kļūda: null,
ziņa: "Atjaunināta piezīme",
});
}
);
} noķert (kļūda) {
res.statuss(500).json({
kļūda: kļūda.ziņa,
ziņa: "Neizdevās atjaunināt piezīmi",
});
}
};

Šī funkcija atgriež veiksmes ziņojumu, ja tabula ir atjaunināta, un kļūdas ziņojumu, ja tā nav.

Dzēst piezīmi pēc ID

Lai no tabulas izdzēstu piezīmi pēc ID, izmantojiet šādu kodu.

konst deleteNote = (req, res) => {
mēģināt {
konst {id} = req.params;
client.query("DZĒST NO piezīmēm, WHERE id=$1", [id], (kļūda, dati) => {
ja (kļūda) mest kļūdīties;

res.statuss(200).json({
kļūda: null,
ziņa: "Piezīme izdzēsta",
});
});
} noķert (kļūda) {
res.statuss(500).json({
kļūda: kļūda.ziņa,
ziņa: "Neizdevās izdzēst piezīmi",
});
}
};

Tagad, kad esat izveidojis visas CRUD funkcijas, eksportējiet tās.

Vietnē helper.js pievienojiet tālāk norādīto.

modulis.eksportu = { CreateNote, getNotes, getNoteById, updateNoteById, deleteNote };

Jūs tos importēsit index.js veidojot API galapunktus.

Izveidojiet API maršrutus

Pēdējais solis ir izveidot API galapunktus index.js katrai no CRUD operācijām.

Sāciet, importējot failu helper.js.

konst db = pieprasīt(./palīgs")

Pēc tam izveidojiet katru galapunktu.

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 datu bāzes atjaunināšanai

Kad esat pabeidzis, varat pārbaudīt, vai jūsu API darbojas, izmantojot REST klientu, piemēram, Postman, vai rakstot vienību testus. Jums vajadzētu būt iespējai nodrošināt, ka visi pieci galapunkti darbojas, kā jūs gaidāt.

Varat arī pārbaudīt un pārvaldīt datubāzei pievienotos datus, izmantojot pgAdmin rīku. Tā ir GUI lietojumprogramma, kas atvieglo datu bāzes administrēšanu un mijiedarbību ar PostgreSQL serveriem.