Pravimo server u node.js-u

Node js je odličan i za pravljenje servera između ostalog jer je uraditi tako nešto upotrebom noda i npm-a vrlo lako. Pa ćemo ovde objasniti kako se to radi.
Za ovaj program je neophodno da imate instalirano na svom računaru mysql i postman, mada ovaj poslednji nije neophodan jer ćemo rezultate makar nekih ruta videti u internet pretraživaču.
Prvo što bi trebalo da uradite je da napravite unutar mysql-a bazu koja će se zvati edutechucenici i da napravite u njoj tabelu ucenici a potom da je napunite nekim podacima.

U novostvorenom folderu napravite fajl koji će se zvati package.json čiji značaj smo objasnili ovde.

U njega upišite sledeći kod:

{
"name": "servernode",
"version": "1.0.0",
"description": "mali node server",
"main": "index.js",
"scripts": {
"start": "nodemon index.js"
},
"author": "Edutech",
"license": "ISC",
"dependencies": {
"express": "^4.16.4",
"mysql": "^2.16.0",
"nodemon": "^1.18.10",
"body-parse": "0.1.0"
}
}

Zatim, tu, unutar foldera gde se nalazite otvorite terminal i ukucajte komandu npm install. Ona će vam pokrenuti proces instaliranja svih dependency paketa koje vaš program ima i videćete da se unutar vašeg foldera pojavio još jedan koji se zove node_modules. U njemu se nalaze svi paketi koje će vaš program trebati za normalno funkcionisanje. Ako pogledate šta smo uneli u package.json, videćete da pod main stoji index.js. Ovo znači da je glavni, ulazni fajl u naš program index.js i u njemu ćemo upisati sledeći kod koji je zapravo naš server:

 

 

const aplikacija = require('express');
const konektor = require('mysql');
const upiti = require('./dbQueries.js');

const konekcija = konektor.createConnection({
host: "localhost",
user: "root",
password: "",
database: "edutechucenici",
})

const server = aplikacija();

server.get('/', (req, res) => res.send('Pocetak klijent aplikacije'));

server.get('/ucenici', (req, res) => {
konekcija.query(upiti.vratiSveUcenike, (err, rows) => {
if(!err) {
res.send(rows);
} else {
console.log(err);
}
})
});

server.get('/ucenik/:id', (req, res) => {
const { id } = req.params;
konekcija.query(upiti.vratiJednogUcenika + id, (err, rows) => {
if(!err) {
res.send(rows);
} else {
console.log(err);
}
})
});

server.delete('/ucenik/:id', (req, res) => {
const id = req.params.id;
konekcija.query(upiti.obrisiJednogUcenika + id, (err, rows) => {
if(!err) {
res.send(rows);
} else {
console.log(err);
}
})
});

server.post('/ucenik', (req, res) => {
const podaciOUceniku = req.body;
console.log(req.body)
konekcija.query(upiti.ubaciJednogUcenika, podaciOUceniku, (err, rows) => {
if(!err) {
res.send(rows);
} else {
console.log(err);
}
})
});

server.listen(3000, () => console.log('Server je ziv'));

Da bi ovo radilo kako treba, potrebno je još na kraju da stvorite fajl u kojem će se nalaziti naši upiti ka bazi i on neka se zove dbQueries.js:

const upiti = {
vratiSveUcenike: "SELECT * FROM ucenici",
vratiJednogUcenika: "SELECT * FROM ucenici WHERE id = ",
obrisiJednogUcenika: "DELETE FROM ucenici WHERE id = ",
ubaciJednogUcenika: "INSERT INTO ucenici SET ?",
}


module.exports = upiti;

Da biste proverili funkcionisanje ovog programa, u terminalu ukucajte node index.js ili nodemon index.js i otvorite vaš pretraživač sa adresom localhost:3000/ucenici.