[[oktatas:web:back-end_framework:express:ervenyesseg|< Érvényesség]] ====== Express - Érvényesség Yup-pal ====== * **Szerző:** Sallai András * Copyright (c) 2024, Sallai András * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|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, a modellben vagy írhatunk rá köztes szoftvert. * https://www.npmjs.com/package/yup (2024) ===== Függőségek ===== npm install yup ===== Köztes szoftver ===== 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 } ===== Használat ===== import { userRegisterValidator, userLoginValidator } from '../middlewares/userValidator.js' //... router.post('/register', [userRegisterValidator], AuthController.register) router.post('/login', [userLoginValidator],AuthController.login) ===== Dolgozó ===== 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)