Ugrás a fő tartalomhoz

Express és NestJS

Express

Az Express egy minimalista Node.js web framework.
Erőssége a rugalmasság és a könnyű használat, nem kényszerít egy adott struktúrára, így gyorsan el lehet kezdeni vele dolgozni.\Express segítségével könnyen létrehozhatunk REST API-kat, és számos middleware-t használhatunk a funkcionalitás bővítésére (pl. hitelesítés, adatbázis kapcsolat, stb.).
Az Express egy nagyon népszerű választás a Node.js fejlesztők körében, különösen kisebb projektekhez vagy gyors prototípusokhoz.

Egyszerű példa

import express, { Express, Request, Response } from 'express';
import dotenv from 'dotenv';

dotenv.config();

const app: Express = express();
const port = process.env.PORT || 3000;

app.use((req: Request, res: Response, next) => {
console.log(`[server]: ${req.method} ${req.url}`);
next();
});

app.get('/', (req: Request, res: Response) => {
res.send('Express + TypeScript Server');
});

app.get('/users/:userId', (req: Request, res: Response) => {
res.send(`User ID: ${req.params.userId}`);
});

app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});

Az Express alkalmazás létrehozásához importáljuk az express modult, és létrehozunk egy app változót, amely az Express alkalmazást reprezentálja.\A dotenv modullal betöltjük a környezeti változókat a .env fájlból, így például a PORT változót is.\A app.use metódussal egy middleware-t adunk hozzá, amely minden bejövő kérésnél kiírja a HTTP metódust és az URL-t a konzolra, majd meghívja a next függvényt, hogy a következő middleware vagy route handler is végrehajtódjon.\A app.get metódussal definiálunk két GET végpontot: az egyik a gyökeret (/), amely egy egyszerű üzenetet küld vissza, a másik pedig egy dinamikus végpont (/users/:userId), amely a userId paramétert visszaküldi a válaszban.\Végül a app.listen metódussal elindítjuk a szervert a megadott porton, és egy üzenetet írunk ki a konzolra, hogy a szerver fut és elérhető a megadott URL-en.

Hátrányai az általunk használt NestJS-hez képest

  • Nincs beépített struktúra, így nagyobb projektekben könnyen kaotikussá válhat
  • Nem támogatja natívan a TypeScript-et, bár könnyen használható vele
  • Nem rendelkezik beépített dependency injection rendszerrel, ami megnehezítheti a tesztelést és a moduláris felépítést
  • Persze ez nem jelenti azt, hogy nem lehet jól használni, csak nagyobb fegyelmet és odafigyelést igényel a fejlesztőktől, hogy ne váljon rendezetlenné a kód.

NestJS

A NestJS egy strukturáltabb, enterprise-közeli framework.

Fő jellemzők

  • TypeScript-first
  • Modul alapú felépítés
  • Dependency Injection
  • Controller / Service architektúra

Express vs NestJS

ExpressNestJS
MinimalistaStrukturált
Gyors indulásNagyobb tanulási görbe
Kevés szabályErős architektúra
Kis projektekhez jóNagy projektekhez ideális

Összefoglalás

Az első előadáson átvettük a következő témákat:

  • Mi az a backend
  • Hogyan kommunikál frontend és backend
  • Mi az a REST API
  • Mi az a JSON
  • Hogyan működik a Node.js
  • Mit jelent az aszinkronitás
  • Mi az a TypeScript
  • Mi az az Express és NestJS

Következő előadás

A következő alkalommal:

  • Megnézzük a konkrét projektet
  • Létrehozunk egy alap NestJS alkalmazást
  • Elkezdjük építeni az API-t

Készítette: Tarjányi Csanád