ExpressJS merupakan framework NodeJS minimal yang sangat fleksibel . Anda bisa membuat web server HTML, server file statik, aplikasi chat, search engine, sosial media, layanan web dengan akses melalui REST API atau aplikasi hybrid yaitu selain pengguna mempunyai akses melalui REST API juga mempunyai akses ke halaman HTML.
Instalasi
Sebelum menginstal express, kita membuat package.json terlebih dahulu dengan cara, jalankan perintah:
npm init
Selanjutnya kita dapat menginstall express
npm install express --save
Perintah diatas akan menginstall express secara otomatis kedalam project dan menyimpan ke dalam dependencies.
Jika instalasi selesai, maka ada folder bernama node_modules pada project seperti gambar berikut:
Berikut update terbaru dari file package.json setelah instalasi express
Pada bagian dependencies terdapat express yang baru diinstal
Basic Routing
Route home akan menampilkan teks Selamat datang di ExpressJS,
sedangkan route about akan menampilkan teks Ini halaman tentang saya.
Buat file index.js
const express = require('express');
const app = express();
Â
//route untuk halaman home
app.get('/',(req, res) => {
  res.send('Selamat datang di ExpressJS');
});
Â
//route untuk halaman about
app.get('/about',(req, res) => {
  res.send('Ini halaman tentang saya');
});
Â
app.listen(8000, () => {
  console.log('Server is running at port 8000');
});
Jalankan index.js pada terminal dengan cara mengetikkan perintah
node index.js
Buka browser, lalu buka http://localhost:8000
Lalu tambahkan /about, menjadi http://localhost:8000/about
Serving Static File
Misalnya kita ingin menambahkan file CSS dan Javascript bootstrap ke dalam project. Lalu kita buat folder dengan nama public untuk menyimpan file CSS dan Javascript.
Template Engine
Untuk menginstal Handlebars.js, jalankan perintah berikut pada terminal
npm install hbs --save
Perintah diatas akan menginstal view engine handlebars ke dalam project. Selanjutnya, buat folder views pada direktori project . Kemudian, buat sebuah file dengan nama index.hbs.
Selanjutnya modifikasi file index.js, menambahkan modul path, hbs dan set public folder sebagai static folder
//use path module
const path = require('path');
//use express module
const express = require('express');
//use hbs view engine
const hbs = require('hbs');
const app = express();
Â
//set dynamic views file
app.set('views',path.join(__dirname,'views'));
//set view engine
app.set('view engine', 'hbs');
//set public folder as static folder for static file
app.use(express.static('public'));
//route untuk halaman home
app.get('/',(req, res) => {
//res.send('Ini halaman tentang saya');
  //render file index.hbs
  res.render('index');
});
Â
//route untuk halaman about
app.get('/about',(req, res) => {
  res.send('Ini halaman tentang saya');
});
Â
app.listen(8000, () => {
  console.log('Server is running at port 8000');
});
Jalankan index.js dengan mengetikan perintah berikut pada terminal:
node index.js
Kemudian buka browser http://localhost:8000
Mengirim Data Ke View
Buka file index.js, kemudian ubah menjadi seperti berikut
//use path module
const path = require('path');
//use express module
const express = require('express');
//use hbs view engine
const hbs = require('hbs');
const app = express();
Â
//set views file
app.set('views',path.join(__dirname,'views'));
//set view engine
app.set('view engine', 'hbs');
//set public folder as static folder for static file
app.use(express.static('public'));
//route untuk halaman home
app.get('/',(req, res) => {
  //render file index.hbs
  res.render('index',{
    name : "Ahmad"
  });
});
Â
//route untuk halaman home dengan parameter name
app.get('/:name',(req, res) => {
  //render file index.hbs
  res.render('index',{
    name : req.params.name
  });
});
Â
app.listen(8000, () => {
  console.log('Server is running at port 8000');
});
Buka file index.hbs, kemudian tambahkan {{ name }} pada teks selamat datang
Express memberikan kemudahan dalam mendefinisikan pada aplikasi berbasis node.js. Misalnya kita ingin membuat 2 route, yaitu home dan about.
Express menyediakan middleware untuk melayani file statis, seperti gambar, CSS, JavaScript, dll. Kita perlu meneruskan nama direktori tempat menyimpan file statis ke middleware untuk melayani file secara langsung.
Selanjutnya kita perlu menginstal . Banyak sekali template engine yang dapat digunakan di expressJS. Kali ini kita akan coba gunakan Handlebars.js.