Minden végponton használhatunk egy vagy több köztes szoftvert. A köztes szoftver mindig a második paraméter. Ha egyetlen köztes szoftvert használunk szimplán átadjuk azt második paraméterként. Ha több köztes szoftverünk van, tömbként adjuk át azokat.
app.post('/valami', koztes1, () => {} app.post('/valami', [koztes1, koztes2], () => {}
Amit megtehetünk egy köztes szoftverben:
Milyen jellemző használatai vannak a köztes szoftvernek? A bejövő adatok érvényességének ellenőrzése, vagy azonosítás.
Készítsünk egy egyszerű Express API alkalmazást:
Köztes szoftver:
const valt = (req, res, next) => { console.log('váltás...'); next(); } export default valt
A köztes szoftver használata az egyszerű alkalmazásban:
import express from 'express'; const app = express(); const port = 8000; import valt from './mid.js'; app.get('/valami', valt, (req, res) => { res.json({ message: 'Helló' }); }) app.listen(port, () => { console.log(`Example app listening on port ${port}`); });
Ellenőrzés:
res localhost:8000/valami
Két köztes szoftver létrehozása:
const valt1 = (req, res, next) => { console.log('váltás 1 ...'); next(); } const valt2 = (req, res, next) => { console.log('váltás 2 ...'); next(); } export { valt1, valt2 };
Két köztes szoftvert tömbben kell megadni az szerveren a végpont számára.
import express from 'express'; const app = express(); const port = 8000; import { valt1, valt2 } from './mid.js'; app.get('/valami', [valt1, valt2], (req, res) => { res.json({ message: 'Helló' }); }) app.listen(port, () => { console.log(`Example app listening on port ${port}`); });
Ellenőrzés:
res localhost:8000/valami
A köztes szoftvert általában olyan adatokon használjuk amik a kérésben érkeznek.
const valt1 = (req, res, next) => { console.log('váltás 1 ...'); console.log('Ezt írtad: ', req.body); next(); } export { valt1 };
import express from 'express'; const app = express(); const port = 8000; import { valt1 } from './mid.js'; app.use(express.json()); app.post('/valami', valt1, (req, res) => { res.json({ message: 'Helló' }); }) app.listen(port, () => { console.log(`Example app listening on port ${port}`); });
Ellenőrzés:
res post localhost:8000/valami name=Valaki
A köztes szoftvert általában olyan adatokon használjuk amik a kérésben érkeznek.
const valt1 = (req, res, next) => { if(req.body.name != 'Pali') { return res.status(400).json({ message: 'Nem felel meg!' }); } next(); } export { valt1 };
Ha a név nem megfelelő elindítjuk a választ 400-as válasszal.
Használat:
import express from 'express'; const app = express(); const port = 8000; import { valt1 } from './mid.js'; app.use(express.json()); app.post('/valami', valt1, (req, res) => { res.json({ message: 'Helló' }); }) app.listen(port, () => { console.log(`Example app listening on port ${port}`); });
Ellenőrzés:
res post localhost:8000/valami name=Pali
res post localhost:8000/valami name=János
const valt1 = (req, res, next) => { req.body.name = 'Árpád' next(); } export { valt1 };
import express from 'express'; const app = express(); const port = 8000; import { valt1 } from './mid.js'; app.use(express.json()); app.post('/valami', valt1, (req, res) => { res.json({ message: 'Tartalom: ' + req.body.name }); }) app.listen(port, () => { console.log(`Example app listening on port ${port}`); });
Ellenőrzés:
res post localhost:8000/valami name=Pali