Tartalomjegyzék

< Express

Express - Kontrollerek

Kontroller használta

Háromféle kontrollert írhatok:

Az exportálást is meg lehet oldani több módon, erre most nem térünk ki.

A class használata

app/controllers/employeecontroller.js
class EmployeeController {
 
    index(req, res) {
        res.send('műkdik');
    }
}
 
module.exports = EmployeeController;

A routingban ekkor így hivatkozunk:

app/routes/api.js
const EmployeeController = require('../controllers/employeecontrollers');
 
router.get('/employees', EmployeeController.prototype.index);

Objektumban függvény

app/controllers/employeecontroller.js
const EmployeeController = {
 
    index(req, res) {
        res.send('műkdik');
    }
}
 
module.exports = EmployeeController;

A routingban ekkor így hivatkozunk:

app/routes/api.js
const EmployeeController = require('../controllers/employeecontrollers');
 
router.get('/employees', EmployeeController.index);

Objektumban névtelen függvény

app/controllers/employeecontroller.js
const EmployeeController = {
 
    index: (req, res) => {
        res.send('műkdik');
    }
}
 
module.exports = EmployeeController;

A routingban ekkor így hivatkozunk:

app/routes/api.js
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:

app/controllers/employeecontroler.js
const EmployeeController = {
    index(req, res) {
        res.send('műkdik');
    }
}
 
module.exports = EmployeeController;

Készítsünk hozzá egy routingot:

app/routes/api.js
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:

app/index.js
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