oktatas:web:back-end_framework:express:ervenyesseg:sequelize_beepitett
Ez a dokumentum egy előző változata!
Tartalomjegyzék
Express - Sequeliez beépített érvényesítés
- Szerző: Sallai András
- Copyright © 2025, Sallai András
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
Bevezetés
Az Sequelize rendelkezik beépített érvényesítéssel.
Model
- employee.js
const { DataTypes } = require('sequelize') const sequelize = require('../database/database') const Employee = sequelize.define('employee', { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, name: { type: DataTypes.STRING, allowNull: false, validate: { notNull: { msg: 'A név mező kötelező' }, notEmpty: { msg: 'A név nem lehet üres' } } }, city: { type: DataTypes.STRING, allowNull: true, validate: { is: { args: /^[a-z]+$/i, msg: 'Hiba! Csak betűk adhatók meg!' } } }, salary: { type: DataTypes.DOUBLE, defaultValue: 300, validate: { isNumeric: {msg: 'Hiba! Csak szám adható meg!'} } }, birth: { type: DataTypes.DATEONLY, defaultValue: DataTypes.NOW, validate: { isDate: {msg: 'Hiba! Csak dátum!'} } } }) sequelize.sync({ force: false }) module.exports = Employee
Kontroller
Az érvényességet a modell-ben beállítottuk. Most nézzük meg, hogyan írhatunk saját figyelmeztetést az érvényességi hibákra.
A hibakezelő részben vizsgáljuk meg, hogy érvényességi hiba történt-e:
if(error instanceof Sequelize.ValidationError) { res.status(400) }else { res.status(500) }
Lehetséges teljes kód:
- employeeController.js
const { Sequelize } = require('sequelize') const Employee = require('../models/employee') const EmployeeController = { async index(req, res) { try { await EmployeeController.tryIndex(req, res) } catch (error) { res.status(500) res.json({ success: false, error: error.message }) } }, async tryIndex(req, res) { const employees = await Employee.findAll() const result = employees.map(emp => ({ id: emp.id, name: emp.name, city: emp.city, salary: emp.salary, birth: emp.birth })) res.json({ success: true, data: result }) }, async store(req, res) { try { await EmployeeController.tryStore(req, res) } catch (error) { if(error instanceof Sequelize.ValidationError) { res.status(400) }else { res.status(500) } const errorMessage = error.errors[0].message res.json({ access: false, error: errorMessage }) } }, async tryStore(req, res) { const employee = { name: req.body.name, city: req.body.city, salary: req.body.salary, birth: req.body.birth } const result = await Employee.create(employee) res.status(201) res.json({ succes: true, data: result }) } } module.exports = EmployeeController
A mintaprogramban a hibakezelés és a lényegi kód szét van választva.
Lásd még
oktatas/web/back-end_framework/express/ervenyesseg/sequelize_beepitett.1743316121.txt.gz · Utolsó módosítás: 2025/03/30 08:28 szerkesztette: admin