Felhasználói eszközök

Eszközök a webhelyen


oktatas:web:back-end_framework:express:ervenyesseg:joi

< Érvényesség

Express - Érvényesség joi-val

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ó:

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