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.
