Felhasználói eszközök

Eszközök a webhelyen


oktatas:web:express:koeztes_szoftver_es

< Express

Köztes szoftver ES

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:

app/mid.js
const valt = (req, res, next) => {
  console.log('váltás...');
  next();
}
 
export default valt

A köztes szoftver használata az egyszerű alkalmazásban:

app/index.js
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:

app/mid.js
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.

app/index.js
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.

app/mid.js
const valt1 = (req, res, next) => {
  console.log('váltás 1 ...');
  console.log('Ezt írtad: ', req.body);
  next();
}
 
export  { valt1 };
app/index.js
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.

app/mid.js
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:

app/index.js
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

app/mid.js
const valt1 = (req, res, next) => {
  req.body.name = 'Árpád'
  next();
}
 
export  { valt1 };
app/index.js
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
oktatas/web/express/koeztes_szoftver_es.txt · Utolsó módosítás: 2025/08/22 15:24 szerkesztette: admin