oktatas:web:back-end_framework:express:ervenyesseg:express_beepitett
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalonElőző változat | |||
oktatas:web:back-end_framework:express:ervenyesseg:express_beepitett [2025/02/09 15:00] – [Kontroller] admin | oktatas:web:back-end_framework:express:ervenyesseg:express_beepitett [2025/03/30 08:23] (aktuális) – eltávolítva admin | ||
---|---|---|---|
Sor 1: | Sor 1: | ||
- | [[oktatas: | ||
- | |||
- | ====== Express - Beépített érvényesítés ====== | ||
- | |||
- | * **Szerző: | ||
- | * Copyright (c) 2025, Sallai András | ||
- | * Licenc: [[https:// | ||
- | * Web: https:// | ||
- | |||
- | ===== Bevezetés ===== | ||
- | |||
- | Az Express rendelkezik beépített érvényesítéssel. | ||
- | |||
- | ===== Model ===== | ||
- | |||
- | <code javascript employee.js> | ||
- | const { DataTypes } = require(' | ||
- | const sequelize = require(' | ||
- | |||
- | const Employee = sequelize.define(' | ||
- | id: { | ||
- | type: DataTypes.INTEGER, | ||
- | autoIncrement: | ||
- | 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: / | ||
- | msg: 'Hiba! Csak betűk adhatók meg!' | ||
- | } | ||
- | } | ||
- | }, | ||
- | salary: { | ||
- | type: DataTypes.DOUBLE, | ||
- | defaultValue: | ||
- | validate: { | ||
- | isNumeric: {msg: 'Hiba! Csak szám adható meg!'} | ||
- | } | ||
- | }, | ||
- | birth: { | ||
- | type: DataTypes.DATEONLY, | ||
- | defaultValue: | ||
- | 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: | ||
- | |||
- | <code javascript> | ||
- | if(error instanceof Sequelize.ValidationError) { | ||
- | res.status(400) | ||
- | }else { | ||
- | res.status(500) | ||
- | } | ||
- | </ | ||
- | |||
- | Lehetséges teljes kód: | ||
- | |||
- | <code javascript employeeController.js> | ||
- | const { Sequelize } = require(' | ||
- | const Employee = require(' | ||
- | |||
- | const EmployeeController = { | ||
- | async index(req, res) { | ||
- | try { | ||
- | await EmployeeController.tryIndex(req, | ||
- | } catch (error) { | ||
- | res.status(500) | ||
- | res.json({ | ||
- | success: false, | ||
- | error: error.message | ||
- | }) | ||
- | } | ||
- | }, | ||
- | async tryIndex(req, | ||
- | 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, | ||
- | } 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, | ||
- | 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. | ||
- | |||
oktatas/web/back-end_framework/express/ervenyesseg/express_beepitett.1739109647.txt.gz · Utolsó módosítás: 2025/02/09 15:00 szerkesztette: admin