[[:oktatas:web:back-end_framework:express|< Express]] ====== Express - Kontrollerek ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2023 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== Kontroller használta ===== Háromféle kontrollert írhatok: * class használata * objektumban függvények * objektumban névtelen függvények Az exportálást is meg lehet oldani több módon, erre most nem térünk ki. ==== A class használata ==== class EmployeeController { index(req, res) { res.send('műkdik'); } } module.exports = EmployeeController; A routingban ekkor így hivatkozunk: const EmployeeController = require('../controllers/employeecontrollers'); router.get('/employees', EmployeeController.prototype.index); ==== Objektumban függvény ==== const EmployeeController = { index(req, res) { res.send('műkdik'); } } module.exports = EmployeeController; A routingban ekkor így hivatkozunk: const EmployeeController = require('../controllers/employeecontrollers'); router.get('/employees', EmployeeController.index); ==== Objektumban névtelen függvény ==== const EmployeeController = { index: (req, res) => { res.send('műkdik'); } } module.exports = EmployeeController; A routingban ekkor így hivatkozunk: const EmployeeController = require('../controllers/employeecontrollers'); router.get('/employees', EmployeeController.index); ===== Dolgozók ===== Készítsünk egy projektet. Ebben a projektben a routingot egy routes könyvtárba, azon belül az api.js fájlba tesszük. Készítünk egy controllers könyvtárat, abba tesszük a kontrollereket. A projekt neve legyen emp. emp/ |-app/ | |-controllers/ | |-routes/ | | `-api.js | `-index.js |-node_modules/ `-package.json Az alkalmazás belépési pontja továbbra is az index.js fájl. Telepítsük az express és a nodemon csomagokat: yarn init -y pnpm install express pnpm install --save-dev nodemon Készítsük el a kontrollerünket, egyetlen index() függvénnyel: const EmployeeController = { index(req, res) { res.send('műkdik'); } } module.exports = EmployeeController; Készítsünk hozzá egy routingot: const Router = require('express'); const router = Router(); const EmployeeController = require('../controllers/employeecontrollers'); router.get('/employees', EmployeeController.index); module.exports = router; Készítsük el a belépési pontot: const express = require('express'); const app = express(); const router = require('./routes/api'); app.use(express.json()); app.use('/api',router); app.listen(8000, () => { console.log('Listening: localhost:8000'); }); Készítsünk start scriptet: { "scripts": { "start": "nodemon app --watch app" }, } ==== Indítás ==== Indítsuk el az szervert: npm start ==== Tesztelés ==== Teszteljük például a HTTPie eszköz http paranccsával: http localhost:8000/api/employees ===== Linkek ===== * https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/routes (2023)