Express keretrendszer¶
Az Express egy Node.js keretrendszer, amelyet a webalkalmazások és az API-k készítésére használnak. Segítségével könnyen és gyorsan készíthetünk webalkalmazásokat, és az alkalmazásunkat könnyen bővíthetjük a különböző middleware-ekkel. Folytassuk a korábban megkezdett példát, és nézzük meg, hogyan tudjuk az Express keretrendszert használni.
Telepítés¶
Az előző fejezetben már láttuk, hogy a Node.js telepítésekor a npm
is telepítésre kerül.
Az npm
egy csomagkezelő, amely segítségével könnyen telepíthetünk különböző csomagokat a projektünkbe.
Az Express telepítéséhez a következő parancsot kell kiadnunk a terminálban:
Ekkor az Express keretrendszer telepítve lesz a projektünkbe, és a package.json
fájlban is megjelenik a függőség.
Példa
A példában látható, hogy a dependencies
részben megjelenik az Express keretrendszer.
Mindemellett az is látható, hogy a telepítést követően létrejön egy node_modules
mappa, amelyben az Express keretrendszer fájljai találhatók, valamint egy package-lock.json
fájl is, amely a telepített csomagok verzióit tartalmazza.
Az új struktúra a következő:
Alapok¶
Kezdjük azzal, hogy létrehozunk egy új fájlt, amelyben az Express keretrendszert használjuk. A fájl neve legyen app.js
.
Az Express keretrendszer használatához először importálnunk kell a modult a projektünkbe. Ezt a következő módon tehetjük meg:
Ezután létrehozunk egy Express alkalmazást, amelyet egy változóban tárolunk:
Az Express keretrendszer segítségével létrehozott alkalmazásunkat a listen
metódussal tudjuk elindítani, és megadhatjuk, hogy melyik porton fusson az alkalmazás:
Ezután a terminálban kiadhatjuk a következő parancsot:
Ekkor az alkalmazásunk elindul a 3000-es porton, és a konzolon megjelenik az Az alkalmazás elindult a 3000-es porton.
üzenet.
Útvonalak¶
Az Express keretrendszer segítségével könnyen tudunk útvonalakat definiálni az alkalmazásunkban.
Az útvonalakat a get
metódussal tudjuk definiálni, amelynek két paramétere van: az útvonal és egy visszahívási függvény, amelyet a kérésre hívunk meg.
Az alábbi példában egy egyszerű útvonalat definiálunk, amely a gyökérre mutat:
Ekkor az alkalmazásunk a gyökérre érkező kérésekre a Hello World!
választ fogja visszaküldeni.
Az útvonalakat a post
, put
, delete
és all
metódusokkal is definiálhatjuk, amelyek a megfelelő HTTP metódusokat reprezentálják.
Middleware¶
A middleware-ek használata Node.js-ben (különösen az Express keretrendszerben) fontos szerepet játszik a webalkalmazások fejlesztésében. A middleware-ek olyan függvények, amelyeket a request (kérés) és a response (válasz) objektumok között hajtanak végre. Ezek a függvények lehetővé teszik, hogy a kérés beérkezésekor különböző feldolgozási lépéseket hajtsunk végre, mielőtt a kérés eljut a végső kezelőhöz (pl. egy route handlerhez).
A middleware-ek fő funkciói:¶
- Kérés előfeldolgozása: A middleware-ek lehetővé teszik, hogy a beérkező HTTP-kéréseket előfeldolgozzuk, mielőtt azok elérnék a végső kezelőt. Például:
- Hitelesítés: Ellenőrizhetjük, hogy a kérés jogosult-e a további feldolgozásra.
- Adatok validálása: Ellenőrizhetjük a kérésben lévő adatok helyességét.
- Kérés naplózása: Naplózhatjuk a beérkező kéréseket.
- Közbenső feldolgozás: A middleware-ek képesek módosítani a kérés és a válasz objektumokat, hogy további információkat adjanak hozzá vagy módosítsák a meglévő információkat. Például:
- Parszolás: A JSON vagy form adatokat feldolgozhatjuk és a req.body-ba helyezhetjük.
- CORS kezelés: Beállíthatjuk a CORS fejléceket a válaszban.
- Kontroll átadása: A middleware-ek továbbadhatják a vezérlést a következő middleware-nek vagy végső kezelőnek a
next()
függvény hívásával. Ez lehetővé teszi a middleware-ek láncolását, ahol minden middleware elvégez egy feladatot, majd továbbadja a kérés feldolgozását. - Hibakezelés: A hibakezelő middleware-ek képesek kezelni a korábbi middleware-ek vagy végső kezelők által generált hibákat. Ezek a hibakezelő middleware-ek tipikusan a végén találhatók az összes többi middleware után, és általában egy
err
argumentummal rendelkeznek.
Példa
Az alábbi példában egy egyszerű middleware-t definiálunk, amely kiírja a konzolra a kérés URL-jét:
Ebben a példában a middleware naplózza a beérkező kérések típusát és URL-jét, majd átadja a vezérlést a következő middleware-nek vagy route handlernek a next()
hívásával.