Felhasználói eszközök

Eszközök a webhelyen


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

< TypeScript érvényesség

Express - TypeScript validálás joi-val

Függőség

Az érvényesség ellenőrzéséhez a joi csomagot fogjuk használni.

npm install joi

Érvényesség ellenőrzése

Az érvényesség ellenőrzéséhez köztes szoftvert fogunk készíteni:

src/middlewares/validate.ts
import Joi from 'joi';
import { 
  NextFunction, 
  Request, 
  Response 
} from 'express';
 
const empSchema = Joi.object({
    name: Joi.string().required(),
    city: Joi.string().min(2),
    salary: Joi.number()
})
 
const empValidate = (
  req: Request, 
  res: Response, 
  next: NextFunction): any => {
    const { error } = empSchema.validate(req.body);
    if (error) {
      res.status(400);
      return res.json({
        error: error.details[0].message
      });
    }
    next()
};
 
export { empValidate }

Belépési pont

src/index.ts
import express, { Request, Response } from 'express';
import router from './routes/api';
 
const app = express();
const PORT = 8000;
 
app.use(express.json());
app.use('/api', router);
 
app.listen(PORT, () => {
  console.log(`Server is running on http://localhost:${PORT}`);
})

Routing

Az útvonalaknál használjuk a köztes szoftvert.

src/routes/api.ts
import { Router } from 'express';
import  EmpController  from '../controllers/empController';
import  { empValidate }  from '../middlewares/validate';
 
const router = Router();
 
router.get('/employees', EmpController.index);
router.post('/employees', [empValidate], EmpController.store);
 
export default router;

Kontroller

src/controllers/empController.ts
import { Request, Response } from "express"
 
const EmpController = {
 
  index: (req : Request, res : Response) => {
    res.json({
      employees : []
    })
  },
  store: (req : Request, res : Response) => {
    res.json({
      name: req.body.name
    })
  }
}
 
export default EmpController

Linkek

oktatas/web/back-end_framework/express/typescript_ervenyesseg/joi.txt · Utolsó módosítás: 2024/12/28 16:02 szerkesztette: admin