Ebook NodeJS Notes for Professionals Bagian 3.3: Modul di express



Untuk membuat modul di express, gunakan router factories:

Modul:

// greet.js
const express = require('express');
module.exports = function(options = {}) { // Router factory
const router = express.Router();
router.get('/greet', (req, res, next) => {
res.end(options.greeting);
});
return router;
};

Aplikasi:

// app.js
const express = require('express');
const greetMiddleware = require('./greet.js');
express()
.use('/api/v1/', greetMiddleware({ greeting:'Hello world' }))
.listen(8080);

Saat mengakses http://<hostname>:8080/api/v1/greet hasilnya akan menjadi Hello world


Contoh yang lebih rumit
Contoh menggunakan middleware.

Modul:

// greet.js
const express = require('express');
module.exports = function(options = {}) { // Router factory
const router = express.Router();
// Get controller
const {service} = options;
router.get('/greet', (req, res, next) => {
res.end(
service.createGreeting(req.query.name || 'Stranger')
);
});
return router;
};

Aplikasi:

// app.js
const express = require('express');
const greetMiddleware = require('./greet.js');
class GreetingService {
constructor(greeting = 'Hello') {
this.greeting = greeting;
}
createGreeting(name) {
return `${this.greeting}, ${name}!`;
}
}
express()
.use('/api/v1/service1', greetMiddleware({
service: new GreetingService('Hello'),
}))
.use('/api/v1/service2', greetMiddleware({
service: new GreetingService('Hi'),
}))
.listen(8080);

Saat mengakses http://<hostname>:8080/api/v1/service1/greet?name=World hasilnya akan Hello, World
dan mengakses http://<hostname>:8080/api/v1/service2/greet?name=World hasilnya akan Hi, World.


Kembali ke Tutorial NodeJS : Membedah Ebook NodeJS Notes For Professionals
LihatTutupKomentar