[[:oktatas:web:express|< Express]]
====== Köztes szoftver ES ======
* **Szerző:** Sallai András
* Copyright (c) 2025, Sallai András
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== Bevezetés =====
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:
* Ellenőrizhetjük az érkező adatokat.
* A köztes szoftverben átírhatjuk a klienstől érkező tartalmat.
* Elindíthatjuk a választ megszakítva a normál végrehajtást.
Milyen jellemző használatai vannak a köztes szoftvernek? A bejövő adatok érvényességének ellenőrzése, vagy azonosítás.
===== Egyszerű köztes szoftver =====
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
===== Több köztes szoftver =====
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 post metódus =====
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
===== Felhasználónév ellenőrzése =====
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
===== Tartalom átírása =====
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