Configurare proiect

Node.js + Express.js + Sequelize + SQLite

1. Generarea fișierului package.json

circle-check

Ne asigurăm că ne aflăm cu terminalul în locul în care vrem să generăm backend-ul și adăugăm manual folderul "server", după care ne mutăm cu terminalul în acel folder.

Tastăm următoare comandă în terminal, care va genera un fișier package.json:

npm init

După ce rulăm comanda, trebuie să trecem printr-o serie de întrebări opționale la care putem răspunde dacă ne dorim, dacă nu apăsăm enter până la capăt.

Exemplu fișier package.json generat

2. Adăugarea librăriilor necesare

Ne mutăm cu mouse-ul din nou în terminal și tastăm următoarea comandă care ne va ajuta să instalăm toate librăriile de care vom avea nevoie pe parcurs:

Descrierea librăriilor:

  • bcrypt – Criptează parolele și le verifică sigur folosind hashing.

  • cors – Permite sau restricționează accesul cross-origin la server.

  • dotenv – Încarcă variabile de mediu din fișier .env.

  • express – Framework minimalist pentru construirea serverelor și API-urilor Node.js.

  • jsonwebtoken – Creează și verifică token-uri JWT pentru autentificare securizată.

  • morgan – Middleware pentru logarea cererilor HTTP în server.

  • sequelize – ORM pentru gestionarea bazelor de date SQL cu Node.js.

3. Generarea cheilor de environment

Pasul 1. În cadrul folderului server adăugăm fișierul .gitignore, care va conține următoarele linii:

Pasul 2. În cadrul folderului server aăugăm fișierul de .env pentru a stoca configurări sensibile și variabile de mediu separat de codul sursă, cum ar fi parole, chei API, portul serverului sau string-ul de conexiune la baza de date.

triangle-exclamation

4. Configurare server

În cadrul folderului server, adăugăm un nou fișier care se numește index.js și care va avea următorul conținut:

circle-info

Descriere cod folosit

  • const app = express(); -> Creează o instanță a serverului Express.

  • dotenv.config(); -> Încarcă variabilele definite în fișierul .env în process.env.

  • const PORT = process.env.PORT || 3000; -> Setează portul serverului: folosește valoarea din .env sau 3000 ca fallback.

  • app.use(morgan('dev'))-> Adaugă Morgan ca middleware pentru logarea cererilor în format “dev” (scurt și detaliat pentru dezvoltare).

  • app.use(cors()); -> Activează CORS pentru toate rutele serverului, permițând accesul de pe alte domenii.

  • app.use(express.json()); -> Activează parsarea automată a cererilor cu body JSON, astfel încât req.body să fie disponibil.

  • app.get('/', (req, res) => { ... }) -> Definește o rută GET la / care răspunde cu un JSON { message: 'Hello' }.

  • app.listen(PORT, () => { ... }) -> Pornește serverul pe portul specificat și afișează un mesaj în consolă când serverul rulează.

5. Generarea unui nou script

Mergem în cadrul fișierului package.json, și la secțiunea scripts adăugăm o nouă linie pe lângă cea de test:

circle-info

Descriere script:

  • dev – este numele scriptului pe care îl poți rula cu npm run dev.

  • node index.js – pornește fișierul principal index.js folosind Node.js.

  • --watch – spune Node.js să monitorizeze fișierul (și fișierele importate de el) pentru modificări. Dacă detectează vreo schimbare în cod, Node.js repornește automat aplicația.

6. Pornire server

Ne mutăm cu mouse-ul în terminal și rulăm scriptul pe care abia l-am generat:

Dacă totul este în regulă și serverul pornește, ar trebui să vedem mesajul "Server successfully started on port 3000":

Deoarece în cadrul fișierului index.js am setat ca dacă apelăm API-ul la adresa http://localhost:3000/arrow-up-right să primim un obiect cu cheia "message" și valoarea "Hello", putem merge în browser la acea adresa să testăm și noi și ar trebui să vedem acest răspuns:

Last updated