[[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)