oktatas:web:back-end_framework:express:kezdes
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalonElőző változat | |||
oktatas:web:back-end_framework:express:kezdes [2025/07/27 23:22] – [Projekt készítése] admin | oktatas:web:back-end_framework:express:kezdes [2025/08/01 10:09] (aktuális) – eltávolítva admin | ||
---|---|---|---|
Sor 1: | Sor 1: | ||
- | [[: | ||
- | |||
- | ====== Express - Kezdés ====== | ||
- | |||
- | * **Szerző: | ||
- | * Copyright (c) 2023, Sallai András | ||
- | * Szerkesztve: | ||
- | * Licenc: [[https:// | ||
- | * Web: https:// | ||
- | |||
- | ===== Az Expressről ===== | ||
- | |||
- | Az Express segítségével gyorsan készíthetünk webalkalmazást JavaScript nyelven, Node.js alapokon. | ||
- | |||
- | Kezeli a HTTP kéréseket, | ||
- | |||
- | ===== VSCode ===== | ||
- | |||
- | Ajánlott bővítmény a VSCode számára: | ||
- | * Node.js Modules Intellisense | ||
- | |||
- | |||
- | ===== Projekt készítése ===== | ||
- | |||
- | Készítsünk egy Node.js projektet: | ||
- | |||
- | <code cmd> | ||
- | yarn init -y | ||
- | </ | ||
- | |||
- | vagy: | ||
- | |||
- | <code cmd> | ||
- | npm init -y | ||
- | </ | ||
- | |||
- | |||
- | A yarn parancs használata esetén, lesz egy ilyen package.json állományunk: | ||
- | |||
- | <code javascript package.json> | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | </ | ||
- | |||
- | Az npm parancs esetén ez egy kicsit bővebb. | ||
- | |||
- | Telepítsük az express csomagot: | ||
- | |||
- | <code cmd> | ||
- | npm install express | ||
- | </ | ||
- | |||
- | Használhatjuk az **pnpm** parancsot is. | ||
- | |||
- | |||
- | Hozzuk létre az app((Az src helyett app könyvtárat használunk, | ||
- | |||
- | <code javascript app/ | ||
- | const express = require(' | ||
- | const app = express(); | ||
- | |||
- | app.get('/', | ||
- | res.send(' | ||
- | }); | ||
- | |||
- | app.listen(8000); | ||
- | </ | ||
- | |||
- | Indítsunk el a szervert: | ||
- | node app | ||
- | |||
- | Teszteljük curl, http vagy res paranccsal, vagy más HTTP klienssel (Postman, Insomnia, Insomnium, HTTPie). | ||
- | http localhost: | ||
- | |||
- | A szervert a Ctrl+C billentyűvel állíthatjuk le. | ||
- | |||
- | |||
- | ===== A listen() függvény ===== | ||
- | |||
- | A listen() függvény képes fogadni második paraméterként egy callback függvényt. | ||
- | Írjunk egy névtelen függvényt, | ||
- | |||
- | |||
- | <code javascript> | ||
- | app.listen(8000, | ||
- | console.log(' | ||
- | }); | ||
- | </ | ||
- | |||
- | Ha most elindítjuk a szervert, informál bennünket arról, hogy a localhost: | ||
- | |||
- | A port változóba: | ||
- | <code javascript> | ||
- | const port = 8000; | ||
- | app.listen(port, | ||
- | console.log(`Listening: | ||
- | }); | ||
- | </ | ||
- | |||
- | Vegyük észre, hogy console.log() paramétere már nem szimpla aposztrófok között van, helyette backtick | ||
- | karakterek szerepelnek. A változó behelyettesítés csak így működik. | ||
- | |||
- | |||
- | ===== Végpont ===== | ||
- | |||
- | Most adjunk valamilyen végpontot a szerverünkhöz. Legyen például egy **product** nevű végpont: | ||
- | |||
- | <code javascript> | ||
- | app.get('/ | ||
- | res.send(' | ||
- | }); | ||
- | </ | ||
- | |||
- | A kódot tegyük a már meglévő app.get() függvény után. | ||
- | |||
- | Indítsuk újra a szervert: | ||
- | node app | ||
- | |||
- | Teszteljük: | ||
- | http localhost: | ||
- | |||
- | ===== A nodemon ===== | ||
- | |||
- | A **nodemon** (Node Monitor) lehetővé teszi, hogy ne kelljen minden fejlesztés után, újraindítanunk a szervert. | ||
- | |||
- | |||
- | Telepítsük: | ||
- | npm install --save-dev nodemon | ||
- | |||
- | Írjunk egy scriptet a package.json fájlban: | ||
- | |||
- | <code javascript> | ||
- | { | ||
- | " | ||
- | " | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | Ha fut a szerver állítsuk le, majd indítsuk újra a start script segítségével: | ||
- | npm start | ||
- | |||
- | Teszteljük az elérést: | ||
- | http localhost: | ||
- | |||
- | ===== Külön routing ===== | ||
- | |||
- | A végpontokkal (endpoint) határozzuk meg, hogy milyen URL-en keresztül kérdezhetünk le adatokat. | ||
- | Az ilyen információkat nevezzük routing-nak. A routing-t kül állományba tesszük, egy **routes.js** fájlba. | ||
- | |||
- | <code javascript app/ | ||
- | const Router = require(' | ||
- | const router = Router(); | ||
- | |||
- | router.get('/ | ||
- | res.send(' | ||
- | }); | ||
- | |||
- | module.exports = router; | ||
- | </ | ||
- | |||
- | Az index.js fájlban importáljuk a routes.js tartalmát: | ||
- | |||
- | <code javascript app/ | ||
- | const express = require(' | ||
- | const app = express(); | ||
- | const router = require(' | ||
- | |||
- | app.use('/ | ||
- | |||
- | app.listen(8000, | ||
- | console.log(' | ||
- | }); | ||
- | </ | ||
- | |||
- | Vegyük észre, hogy az URL-be bekerült egy **/api** rész. | ||
- | |||
- | Tesztelés: | ||
- | http localhost: | ||
- | |||
- | ===== JSON válasz ===== | ||
- | |||
- | A routes.js fájlban határozzuk meg, hogy mit küldünk a kérésre. | ||
- | Eddig szimpla szöveget küldtünk. A REST API szervereket általában | ||
- | JSON kommunikációval használjuk. | ||
- | |||
- | JSON választ a json() függvénnyel készíthetünk: | ||
- | |||
- | <code javascript app/ | ||
- | const Router = require(' | ||
- | const router = Router(); | ||
- | |||
- | router.get('/ | ||
- | res.json({ name: ' | ||
- | }); | ||
- | |||
- | module.exports = router; | ||
- | </ | ||
- | |||
- | ===== Metódusok ===== | ||
- | |||
- | Minden HTTP metódushoz tartozik egy függvény: get(), post(), put(), path(), delete(). | ||
- | Vegyünk fel minden HTTP metódushoz egy routingot. | ||
- | |||
- | <code javascript app/ | ||
- | const Router = require(' | ||
- | const router = Router(); | ||
- | |||
- | router.get('/ | ||
- | res.json({ msg: 'get metódus' | ||
- | }); | ||
- | router.post('/ | ||
- | res.json({ msg: 'post metódus' | ||
- | }); | ||
- | router.put('/ | ||
- | res.json({ msg: 'put metódus' | ||
- | }); | ||
- | router.patch('/ | ||
- | res.json({ msg: 'patch metódus' | ||
- | }); | ||
- | router.delete('/ | ||
- | res.json({ msg: ' | ||
- | }); | ||
- | |||
- | module.exports = router; | ||
- | </ | ||
- | |||
- | Teszteljük HTTP klienssel. Például a http paranccsal (HTTPie része): | ||
- | |||
- | < | ||
- | http localhost: | ||
- | |||
- | http post localhost: | ||
- | |||
- | http put localhost: | ||
- | |||
- | http patch localhost: | ||
- | |||
- | http delete localhost: | ||
- | </ | ||
- | |||
- | ===== create-sip használata ===== | ||
- | |||
- | npm create sip@latest | ||
- | |||
- | |||
- | A futtatás során a következőt láthatjuk: | ||
- | |||
- | < | ||
- | npm create sip@latest | ||
- | |||
- | > npx | ||
- | > create-sip | ||
- | |||
- | ? Project name: › app01 | ||
- | </ | ||
- | |||
- | Írjuk át a projekt nevét, például api névre. | ||
- | |||
- | < | ||
- | npm create sip@latest | ||
- | |||
- | > npx | ||
- | > create-sip | ||
- | |||
- | ✔ Project name: … api | ||
- | ? Project type: › - Use arrow-keys. Return to submit. | ||
- | ❯ | ||
- | Web Bootstrap | ||
- | JavaScript | ||
- | Web Node.js | ||
- | ESBuild JavaScript | ||
- | ESBuild TypeScript | ||
- | hai mock API | ||
- | Express API | ||
- | Cancel | ||
- | </ | ||
- | |||
- | |||
- | Válasszuk az Express API lehetőséget: | ||
- | < | ||
- | ✔ Project name: … api | ||
- | ? Project type: › - Use arrow-keys. Return to submit. | ||
- | Webpage | ||
- | Web Bootstrap | ||
- | JavaScript | ||
- | Web Node.js | ||
- | ESBuild JavaScript | ||
- | ESBuild TypeScript | ||
- | hai mock API | ||
- | ❯ | ||
- | Cancel | ||
- | </ | ||
- | |||
- | A következőket láthatjuk: | ||
- | |||
- | < | ||
- | Create a new Express API... | ||
- | ExpressJS REST API sablon created | ||
- | Read docs/ | ||
- | Run next commands: | ||
- | cd api | ||
- | npm install | ||
- | node op key: | ||
- | npm run dev | ||
- | </ | ||
- | |||
- | Egy ilyen könyvtárszerkezetet kapunk: | ||
- | |||
- | < | ||
- | api/ | ||
- | |-app/ | ||
- | | |-controllers/ | ||
- | | | | ||
- | | | | ||
- | | |-database/ | ||
- | | | | ||
- | | |-middlewares/ | ||
- | | | | ||
- | | |-models/ | ||
- | | | | ||
- | | |-routes/ | ||
- | | | | ||
- | | `-index.js | ||
- | |-config/ | ||
- | | |-default.json | ||
- | | `-default.json.example | ||
- | |-docs/ | ||
- | | |-dev_doc.md | ||
- | | `-user_doc.md | ||
- | |-templates/ | ||
- | |-test/ | ||
- | |-tools/ | ||
- | |-nodemon.json | ||
- | |-op | ||
- | |-package.json | ||
- | `-README.md | ||
- | </ | ||
- | |||
- | ==== Alkalmazás kulcs generálása ==== | ||
- | |||
- | node op key: | ||
- | |||
- | |||
- | ==== Model létrehozása ==== | ||
- | |||
- | node op create model employee | ||
- | |||
- | ==== Kontroller létrehozása ==== | ||
- | |||
- | node op create controller employee | ||
- | |||
- | ==== Indítás ==== | ||
- | |||
- | Fejlesztői szerver indítása: | ||
- | npm run start | ||
- | |||
- | Production indítása: | ||
- | npm start | ||
oktatas/web/back-end_framework/express/kezdes.1753651330.txt.gz · Utolsó módosítás: 2025/07/27 23:22 szerkesztette: admin