Pada tahap ini kita akan melakukan pengaturan konfigurasi juga menambah beberapa package Node.js ke dalam aplikasi kita.
Nodemon
Package ini berguna agar nantinya aplikasi yang kita jalankan akan secara otomatis membaca perubahan kode sehingga kita tidak perlu terus-menerus merestart aplikasi kita. Untuk menambahkan nodemon kita cukup menjalankan perintah
npm install nodemon --save-dev
Buka file package.json dan ubah pada bagian "scripts" menjadi seperti ini:
"scripts": {
"start": "node ./bin/www",
"dev": "nodemon ./bin/www",
"server": "DEBUG=express-simple-restapi:* npm run dev"
}
Coba jalankan kembali (Jika aplikasi masih berjalan, tekan CTRL+C terlebih dahulu untuk keluar) aplikasi kita dengan menggunakan perintah:
npm run server
Buka alamat http://localhost:3000 lagi dan harusnya tidak terjadi perubahan apa-apa. Kemudian coba edit lagi file routes/index.js. Semisal kita ubah teks nya seperti ini:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.send("Belajar Membuat REST API dengan Express itu menyenangkan.");
});
module.exports = router;
Coba Refresh halaman localhost:3000 tanpa merestart aplikasi, kita bisa lihat teks yang tampil di halaman sudah berubah menjadi "Belajar Membuat REST API dengan Express itu menyenangkan.". Ini artinya nodemon sudah bekerja, karena perubahan kode sudah terbaca otomatis tanpa kita merestart aplikasi kita.
Babel
Sebenarnya penambahkan package babel ini opsional, tapi sebaiknya tetap dilakukan. Jadi nanti kegunaannya apa dari Babel ini. Babel sendiri bisa dibilang sebuah Transpiler atau secara sederhana tugas dari babel ini adalah menterjemahkan sintaks-sintaks javascript yang unsupported ke sintaks yang di-support oleh browser atau NodeJS
ni diperlukan ketika kita nantinya melakukan penulisan sintaks sesuai standard ES6, yaitu standarisasi penulisan javascript yang sekarang ini sudah banyak diterapkan. Untuk menginstal babel dan konfigurasi babel, berikut langkah-langkahnya:
Tambahkan beberapa package babel yang diperlukan dengan perintah ini
npm install @babel/cli @babel/core @babel/node @babel/preset-env --save-dev
Buat file baru dengan nama .babelrc
{
"presets": ["@babel/preset-env"]
}
Terakhir edit kembali file package.json pada bagian "scripts" menjadi seperti ini:
"scripts": {
"start": "node ./bin/www",
"dev": "nodemon ./bin/www --exec babel-node", //menambahkan babel transpiler
"server": "DEBUG=express-simple-restapi:* npm run dev"
},
Bagaimana mengecek kalau babel ini sudah terinstal dengan benar. Kita akan mencoba mengedit file routes/index.js dengan standarisasi ES6.
import express from 'express';
const router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.send("Belajar Membuat REST API dengan Express itu menyenangkan.");
});
export default router;
Dan lakukan perubahan sedikit pada file app.js pada bagian ini:
var indexRouter = require('./routes/index');
Ubah menjadi seperti ini:
import indexRouter from './routes/index';
Jika kamu menjalankan aplikasi tanpa babel dengan perintah seperti ini:
DEBUG=express-simple-restapi:* npm run start
Maka akan terjadi error, tapi jika menjalankannya dengan perintah dari scripts yang sudah kita tambahkan babel maka aplikasi bisa berjalan normal kembali.
npm run server
Untuk mendownload atau melihat full source code pada tahap ini, silahkan kunjungi alamat repo github https://github.com/sakukode/simple-restapi/releases/tag/v0.1