< Nazad na kurseve
Uvod u backend servise kroz Node.js
Nauči Node.js i NPM ekosistem. Nauči da praviš backend API koji opslužuje Android, IOS i web aplikacije. Nauči da prikupljaš, obrađuješ i služiš podatke.
Preduslov za ovaj kurs je osnovno znanje Javaskripta.
Uvod u Node.js
- Čemu služi Node.js?
- Razlika od JS-a u pregledaču
- nema globalne objekte
window
idocument
- ima globalne objekte
global
iprocess
- nema globalne objekte
- Sržni moduli (
fs
,path
,os
,http
)
NPM (Node Package Manager)
- Čemu služi upravljač paketima?
- Lična karta projekta:
package.json
fajl - Globalna i lokalna instalacija biblioteka
- Razvojne NodeJS alatke
nodemon
: automatsko restartovanje node aplikacije- Linter, mali pomoćnik koji ispravlja tvoj kod
- Uvoz i izvoz modula (alternativne sintakse
import
irequire
)
Asinhrono programiranje
- Događaji i povratne funkcije (callback)
- Gneždenje povratnih funkcija
- Povratni pakao (callback hell)
- Obećanja (promises)
async
/await
- vežba: žongliranje (asinhrono učitavamo podatke sa raznih servera, prikazujemo ih željenim redom)
Rad sa fajlovima
- Čitanje fajlova i direktorija (
fs
modul) - Problem putanja za razne operativne sisteme (
path
modul) - Globalne vrednosti
__dirname
i__filename
- Sinhrone ili asinhrone operacije
- Vežba: asinhrono čitanje i pisanje fajlova
Žetva podataka (web scraping)
- Uvod u žetvu podataka
- Čitamo HTML stranice
cheerio
: jQuery na serverskoj strani
- Čitamo API (programski interfejs aplikacija)
- Filtriramo podatke
- Čuvamo podatke
Server i služenje podataka
- Šta je server?
- Šta je port?
- Šta su web servisi?
- Pokretanje servera
- Služenje podataka
- Zahtev i odgovor (
request
iresponse
) - Autentifikacija korisnika pomoću tokena
- Vežba: pravimo bekend kao REST API servis
Striming (tečenje) podataka
- Šta je tečenje?
- Strimovanje iz fajlova
- Povezivanje cevima (pipes)
- Događaji
- Upotreba bafera za binarne podatke
Express za serverske aplikacije
- Odgovor na
GET
iPOST
zahteve - Rute
- Šabloni (
ejs
, Jade i Hilebars) - Cross-origin resource sharing (CORS)
WebSocket za aplikacije u realnom vremenu
- Dodavanje
Socket.io
u aplikaciju - Emitovanje i slušanje događaja
- Vežba: chat aplikacija
Rad sa bazama podataka
- Relacione baze podataka (MySQL)
- NoSQL baze podataka (MongoDB i Mongoose)
- Povezivanje sa bazom podataka
- Izvođenje CRUD operacija (CREATE, READ, UPDATE, DELETE)
- Pretvaranje korisničkih zahteva u web servise
- Prihvatanje korisničkog unosa (
POST
zahtev) - Upisivanje korisničkih podataka u bazu
- Prihvatanje korisničkog unosa (