oktatas:web:back-end_framework:express:ervenyesseg:joi
Tartalomjegyzék
Express - Érvényesség joi-val
- Szerző: Sallai András
- Copyright © 2024, Sallai András
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
Bevezetés
Célunk a bejövő adatok ellenőrzése. A bejövő adatokat ellenőrizhetjük a kontrollerben is, vagy írhatunk rá köztes szoftvert.
Dokumentáció:
- https://joi.dev/ (2024)
Függőségek
npm install joi
vagy:
pnpm add joi
Validator
- app/middlewares/empValidator.js
import Joi from 'joi'; const empSchema = Joi.object({ name: Joi.string().required(), city: Joi.string().min(2), salary: Joi.number().min(100).max(1000) }); const empValidator = (req, res, next) => { const { error } = empSchema.validate(req.body); if (error) { res.status(400) return res.json({ error: error.details[0].message }); } next(); }; export default empValidator;
Használat az útválasztóban
- app/routes/api.js
import { Router } from 'express'; import EmployeeController from '../controllers/employeeController.js'; import empValidator from '../middlewares/empValidator.js'; const router = Router(); router.get('/employees', EmployeeController.index); router.post('/employees', [empValidator], EmployeeController.store); export default router;
Regisztráció érvényessége
- app/middlewares/authValidator.js
import Joi from 'joi'; const registerValidator = (req, res, next) => { const schema = Joi.object({ user: Joi.string().min(3).required(), email: Joi.string().email().required(), pass: Joi.string().min(5).required(), pass_confirm: Joi.string().min(5).required().valid(Joi.ref('pass')) }); const { error } = schema.validate(req.body); if (error) { res.status(422); return res.json({ errors: error.message }); } next(); }; export { registerValidator };
A routingban:
router.post('/register', [registerValidator], AuthController.register);
oktatas/web/back-end_framework/express/ervenyesseg/joi.txt · Utolsó módosítás: 2024/12/28 22:52 szerkesztette: admin