Célunk a bejövő adatok ellenőrzése. A bejövő adatokat ellenőrizhetjük a kontrollerben, a modellben vagy írhatunk rá köztes szoftvert.
npm install yup
import { object, string } from 'yup'; const userRegisterValidator = (req, res, next) => { const userSchema = object({ name: string().required(), email: string().email().required(), password: string().required() }) userSchema.validate(req.body) .then(() => next()) .catch(err => { res.status(400) res.json({ success: false, message: err.message }) }) } const userLoginValidator = (req, res, next) => { const userSchema = object({ name: string().required(), password: string().required() }) userSchema.validate(req.body) .then(() => next()) .catch(err => { res.status(400) res.json({ success: false, message: err.message }) }) } export { userRegisterValidator, userLoginValidator }
import { userRegisterValidator, userLoginValidator } from '../middlewares/userValidator.js' //... router.post('/register', [userRegisterValidator], AuthController.register) router.post('/login', [userLoginValidator],AuthController.login)
import { object, string, number } from 'yup'; const employeeCreateValidator = (req, res, next) => { const employeeSchema = object({ name: string().required(), city: string(), salary: number() }) employeeSchema.validate(req.body) .then(() => next()) .catch(err => { res.status(400) res.json({ success: false, message: err.message }) }) } export { employeeCreateValidator }
router.post('/employees', [employeeCreateValidator], EmployeeController.store)