Tartalomjegyzék
Express - Kezdés
- Szerző: Sallai András
- Copyright © 2023, Sallai András
- Szerkesztve: 2024
- Web: https://szit.hu
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, támogatja a middleware használatát.
VSCode
Bővítmény:
- Node.js Modules Intellisense
Projekt készítése
Készítsünk egy Node.js projektet:
yarn init -y
Lesz egy ilyen package.json állommányunk:
- package.json
{ "name": "app04", "version": "1.0.0", "main": "index.js", "license": "MIT", }
Telepítsük az express csomagot:
pnpm install express
Hozzuk létre az src könyvtárban az index.js állományt, a következő tartalommal:
- app/index.js
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('helló') }); app.listen(8000);
Indítsunk el a szervert:
node src
Teszteljük curl vagy http paranccsal, vagy más HTTP klienssel.
http localhost:8000
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, ami kiírja milyen porton fut a szerver:
app.listen(8000, () => { console.log('Listening: localhost:8000'); });
Ha most elindítjuk a szervert, informál bennünket arról, hogy a localhost:8000 címen és porton figyel.
A port változóba:
const port = 8000; app.listen(port, () => { console.log(`Listening: localhost:${port}`); });
Végpont
Most adjunk valamilyen végpontot a szerverünkhöz. Legyen például egy product nevű végpont:
app.get('/product', (req, res) => { res.send('termék') });
Indítsuk újra a szervert:
node src
Teszteljük:
http localhost:8000/product
A nodemon
A nodemon lehetővé teszi, hogy ne kelljen minden fejlesztés után, újraindítanunk a szervert.
Telepítsük:
pnpm install --save-dev nodemon
Írjunk egy scriptet a package.json fájlban:
{ "scripts": "start": "nodemon src --watch src" }
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:8000/product
Külön routing
- app/routes.js
const Router = require('express'); const router = Router(); router.get('/product', (req, res) => { res.send('termék') }); module.exports = router;
- app/index.js
const express = require('express'); const app = express(); const router = require('./routes'); app.use('/api',router); app.listen(8000, () => { console.log('Listening: localhost:8000'); });
Tesztelés:
http localhost:8000/api/product
JSON válasz
JSON választ a json() függvénnyel készíthetünk:
- app/routes.js
const Router = require('express'); const router = Router(); router.get('/product', (req, res) => { res.json({ name: 'memória'}); }); module.exports = router;
Metódusok
Minden HTTP metódushoz tartozik egy függvény: get(), post(), put(), path(), delete().
- app/routes.js
const Router = require('express'); const router = Router(); router.get('/product', (req, res) => { res.json({ msg: 'get metódus'}); }); router.post('/product', (req, res) => { res.json({ msg: 'post metódus'}); }); router.put('/product', (req, res) => { res.json({ msg: 'put metódus'}); }); router.patch('/product', (req, res) => { res.json({ msg: 'patch metódus'}); }); router.delete('/product', (req, res) => { res.json({ msg: 'delete metódus'}); }); module.exports = router;
Teszteljük őket a http paranccsal:
http localhost:8000/api/product http post localhost:8000/api/product http put localhost:8000/api/product http patch localhost:8000/api/product http delete localhost:8000/api/product