Menggunakan Third Party Middleware

Kita juga bisa menggunakan middleware yang dikembangkan oleh pihak ketiga, contohnya morgan, middleware yang cukup populer untuk menampilkan log ke console.

NOTE: Jika Anda membutuhkan informasi third party middleware yang mendukung express, silakan kunjungi https://expressjs.com/en/resources/middleware.html

Pertama install terlebih package morgan, buka terminal (command prompt), jalankan perintah berikut:

npm i morgan

Setelah instalasi selesai, kita gunakan dalam program. Buka file app.js lalu masukan code berikut

const = require('morgan');

app.use(morgan('dev'));

Pertama kita import dahulu package morgan dengan perintah require. Kemudian gunakan sebagai middleware dengan perintah app.use().

Pada contoh digunakan parameter ‘dev’, ada parameter lainnya seperti ‘tiny’ dan lainnya. Untuk lebih lengkap silakan lihat dokumentasinya di https://github.com/expressjs/morgan

Berikut isi lengkap dari file app.js

const fs = require('fs');
const express = require('express');
const morgan = require('morgan');

const app = express();

app.use(express.json());
app.use(morgan('dev'));

app.use((req, res, next) =>{
    console.log('Ini berasal dari middleware');
    next();
});

const tours = JSON.parse(fs.readFileSync(`${__dirname}/devdata/tours-simple.json`));

const getAllTours = (req, res) => {
    res.status(200).json({
        status: 'success',
        results: tours.length ,
        data: {
            tours: tours
        }
    });
}
const getTours = (req, res) => {
    const id = req.params.id * 1;
    const tour = tours.find(el => el.id === id);

    if(!tour){
        res.status(404).json({
            status: 'fail',
            message: 'invalid ID'
        });
    }else{
        res.status(200).json({
            status: 'success',
            data: {
                tour: tour
            }
        });
    }

}
const createTour = (req, res) => {
    const newId = tours[tours.length-1].id + 1;
    const newTour = Object.assign({id: newId}, req.body);

    tours.push(newTour);
    fs.writeFile(`${__dirname}/devdata/tours-simple.json`, JSON.stringify(tours), err=>{
        res.status(201).json({
            status: 'success',
            data: {
                tour: newTour
            }
        });
    });
}
const updateTour = (req, res)=> {
    // do validation

    //return to client
    res.status(201).json({
        status: 'success',
        data: {
            tour: 'data updated'
        }
    });
}
const deleteTour = (req, res)=> {
    // do validation

    //return to client
    res.status(204).json({
        status: 'success',
        data: null
    });
}

app.route('/api/v1/tours').get(getAllTours).post(createTour);
app.route('/api/v1/tours/:id').get(getTours).patch(updateTour).delete(deleteTour);

const port = 3000;
app.listen(port, ()=>{
    console.log(`Listening on port ${port}...`);
});

Testing Aplikasi

Buka Postman lalu panggil salah satu routing yang telah dibuat sebelumnya, misalnya 127.0.0.1:3000/api/v1/tours/2

Jika kita lihat pada console, maka middleware morgan akan menampilkan log seperti gambar dibawah.

Dapat dilihat, morgan menampilkan log yang akan sangat membantu proses development. Silakan bereksperimen dengan parameter morgan untuk mendapatkan tipe log yang Anda perlukan.

Sharing is caring:

Leave a Comment