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ó:
npm install joi
vagy:
pnpm add joi
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;
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;
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);