Apa itu express? Express adalah framework node.js yang minimalis dan flexibel yang memiliki fitur-fitur yang lengkap untuk membuat web dan mobile application.

Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.

Jadi dengan Express kamu bisa lebih cepat untuk membuat rest api dengan menggunakan MySQL atau database lainnya. Itu karena Express sudah include dengan HTTP utility yang mudah dipakai dan juga module-module lainnya.

Jika kalian baru mulai belajar Express, ikuti terus tutorial ini ya.

Instalasi Express

Express membutuhkan node.js, jadi pastikan komputer kamu sudah terinstall node.js dahulu ya.

Jika belum bisa cek cara install node.js di tutorial ini: Belajar NodeJs - Dasar dan Persiapan Belajar NodeJs.

Jika node.js sudah terinstall dengan baik. Selajutnya kita buat sebuah folder. Misalnya namanya express-app.

mkdir express-app

Pergi ke dalam folder tersebut dan jalankan npm init

cd express-app
npm init

Ikuti step-stepnya sampai selesai. Contohnya seperti di bawah ini.

{
  "name": "express-app",
  "version": "1.0.0",
  "description": "express app sample",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

Jika sudah selesai, selanjutnya kita akan menginstall Express.

Bagaimana caranya?

Jalankan command dibawah ini.

npm install express --save

Jika sudah selesai, package.json akan berubah seperti dibawah ini.

{
  "name": "express-app",
  "version": "1.0.0",
  "description": "express app sample",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1"
  }
}

Bisa kita liat, kita sudah memiliki dependencies baru dengan nama express.

Selain itu, di dalam folder express-app juga akan ada folder baru dengan nama node_modules.

Kita sudah berhasil menginstall express di dalam project kita.

Selanjutnya apa?

Membuat Hello World Dengan Express

Untuk mengetes apakah express berfungsi dengan baik, kita akan membuat sebuah aplikasi sederhana yang menampilan Hello World.

Buat sebuah file index.js. Lalu isi dengan kode dibawah ini.

const express = require('express')
const app = express()
const port = 3030

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})

Coba jalankan server kita dengan command node index.js.

Jika tidak ada error akan muncul tampilan seperti ini di terminal kamu.

Hello World Express
Hello World Express

Buka url http://localhost:3030 dan kamu harusnya bisa mendapatkan tampilan Hello World! di browser kamu.

Express Routing

Salah satu fitur Express adalah kita bisa dengan mudah membuat route atau url untuk aplikasi yang kita buat.

Kita bisa menentukan path dan method dari route yang dibuat.

Untuk membuat route di express, caranya adalah dengan mengikuti struktur ini.

app.METHOD(PATH, HANDlER)

Dimana:

  1. app: ini adalah instant dari express
  2. METHOD: ini adalah method dari request yang kita buat, seperti get, post, put atau delete. http method ini huruf kecil semua ya.
  3. PATH: ini adalah path url yang di inginkan. Seperti /product, /home atau yang lainnya.
  4. HANDLER: adalah function yang akan dieksekusi saat route itu dipanggil.

Daripada bingung, kita contohnya saja bagaimana cara membuat route di applikasi sebelumnya.

Buka file index.js lihat di bagian ini.

app.get('/', (req, res) => {
  res.send('Hello World!')
})

Itu adalah contoh GET route. Nah kita kamu ingin membuat POST route contohnya ada dibawah ini.

app.post('/', function (req, res) {
  res.send('Got a POST request')
})

Atau PUT request?

app.put('/user', function (req, res) {
  res.send('Got a PUT request at /user')
})

Bagaimana kalau DELETE Requst?

app.delete('/user', function (req, res) {
  res.send('Got a DELETE request at /user')
})

Mudah bukan routing di Express. Untuk dokumentasi yang lebih lengkap, kamu bisa cek dokumentasi disini ya: https://expressjs.com/en/guide/routing.html

Express Templating

Secara umum, Express dan nodejs digunakan di server side. Untuk membuat website sederhana di Express, kita akan memakai template engine Express yaitu Pug.

Pug adalah template engine yang memungkinkan kita parsing data/variable ke dalam static file.

Selain Pug, kita juga bisa memakai template engine lainnya seperti Mustache atau EJS atau Jade.

Kita install dulu pug.

npm install pug --save

Jika sudah, edit file index.js dan tambahkan kode dibawah ini setelah baris const port = 3030.

app.set('view engine', 'pug');
app.set('views','./views');

Penjelasannya adalah:

  1. Kita memberitahu Express bahwa kita akan menggunakan view engine = pug.
  2. Kita akan memberitahu Express untuk tempat file-file view kita akan kita taruh di directory/folder views.

Selajutnya buat sebuah folder baru dengan nama views.

Kemudian buat sebuah file dengan nama welcome.pug.

Isi dengan kode dibawah ini.

doctype html
html
   head
      title = "Hello Pug"
   body
      p.greetings#people Hello World!

Edit dibagain get route dan ubah get route / menjadi seperti dibawah ini.

app.get('/', (req, res) => {
    res.render('welcome');
})

Penjelasan:

Saat ada get request ke path / maka, Express akan me-render file welcome.

Coba restart webserver kamu dan buka lagi url: http://localhost:3030/

Express akan merender file welcome.pug itu menjadi seperti dibawah ini:

<!DOCTYPE html>
<html>
   <head>
      <title>Hello Pug</title>
   </head>
   
   <body>
      <p class = "greetings" id = "people">Hello World!</p>
   </body>
</html>

Bagaimana cara memparsing data dari route ke view template?

Misalnya kita buat sebuah view baru dengan nama profile.pug.

doctype html
html
   head
      title = "Hello Pug"
   body
      p.greetings#people Hello #{user} 

Untuk pass variable berupa string ke template, kamu bisa menggunakan syntact #{variableName}.

Buat sebuah route baru dengan path profile yang akan me-render view profile.pug.

app.get('/profile', (req, res) => {
    res.render('profile', {user: 'Agus'});
})

Kamu bisa memparsing data ke view dengan menambahkan object sebagai parameter dari fungsi res.render(view_name, data_json_object).

Jadi di route /profile kita parsing variable user ke view dengan value = Agus.

Cukup mudah mudah?

Jadi itulah sedikit perkenalan kita dengan Express.JS, framework nodejs yang bisa mempercepat proses saat development sebuah website atau mobile aplikasi.

Selanjutnya kita akan belajar bagaimana cara membuat REST api dengan menggunakan Express.

Ikuti terus tutorial di website ini ya guys.