Membuat dan Menjalankan Proyek Express.js dengan ServBay
Apa itu Express.js?
Express.js adalah sebuah kerangka kerja web yang cepat, open source, dan minimalis berbasis Node.js. Express.js memberikan beragam fitur andal untuk membangun aplikasi web single page, multi page, maupun aplikasi hybrid. Sebagai salah satu framework paling populer di ekosistem Node.js, Express.js digemari oleh para developer karena desainnya yang sederhana dan fleksibel.
Fitur Utama dan Keunggulan Express.js
- Sederhana dan Fleksibel: Express.js menawarkan API yang bersih dan mekanisme middleware yang fleksibel, membuat pengembangan aplikasi web menjadi lebih efisien.
- Middleware: Mendukung berbagai jenis middleware untuk mengelola permintaan dan respons, seperti parser body, penanganan session, penyediaan file statis, dan lain-lain.
- Routing: Fungsi routing yang kuat untuk menangani permintaan berdasarkan berbagai metode HTTP (GET, POST, PUT, DELETE, dll.) dan path URL.
- Integrasi yang Mudah: Dapat dengan mulus diintegrasikan dengan berbagai template engine (seperti Pug, EJS, Handlebars), database (seperti MongoDB, MySQL, PostgreSQL), dan modul Node.js lainnya.
- Komunitas dan Ekosistem: Didukung oleh komunitas besar serta banyak middleware dan plugin pihak ketiga, sehingga mudah menemukan solusi dan sumber daya saat menemui kendala.
Dengan Express.js, developer dapat membangun aplikasi web dan API yang andal secara efisien. ServBay sebagai lingkungan pengembangan web lokal yang tangguh, menyediakan platform Node.js yang mudah digunakan serta fitur manajemen situs (reverse proxy) dan database yang mumpuni untuk menjalankan proyek Express.js Anda.
Membuat dan Menjalankan Proyek Express.js dengan ServBay
Panduan ini akan membawa Anda langkah demi langkah membuat, mengonfigurasi, dan menjalankan proyek Express.js dengan memanfaatkan lingkungan Node.js dari ServBay. Kita akan menggunakan fitur Situs (Websites) pada ServBay untuk mengatur server web serta mengakses proyek melalui reverse proxy. Cara ini sangat ideal untuk aplikasi Node.js, Python, Go, Java, dan lain-lain yang menjalankan service pada port khusus.
Prasyarat
Sebelum memulai, pastikan Anda telah memenuhi syarat berikut:
- ServBay telah terpasang di macOS Anda.
- Paket perangkat lunak Node.js sudah diinstal dan diaktifkan di ServBay. Anda dapat mengelolanya melalui tab "Paket" di control panel ServBay.
- (Opsional) Bila Anda ingin terkoneksi dengan database, pastikan paket database yang relevan (seperti MariaDB, PostgreSQL, MongoDB, Redis, MySQL) sudah diinstal dan diaktifkan di ServBay.
- Memiliki pengetahuan dasar tentang penggunaan terminal/command line.
Membuat Proyek Express.js
Inisialisasi Proyek
Mulailah dengan membuka terminal dan masuk ke direktori root website yang direkomendasikan ServBay yaitu
/Applications/ServBay/www
. Jalankan perintahnpx express-generator
untuk dengan cepat membuat kerangka proyek Express.js.npx
adalah utilitas Node.js (bawaan npm v5.2 ke atas) untuk eksekusi tools package.bashcd /Applications/ServBay/www npx express-generator servbay-express-app
1
2Perintah ini akan membuat folder baru bernama
servbay-express-app
di bawah/Applications/ServBay/www
, berisi struktur dasar proyek Express.js.Install Dependensi Proyek
Masuk ke direktori proyek yang baru,
servbay-express-app
, lalu jalankan perintahnpm install
untuk menginstal semua paket yang diperlukan (termasuk Express.js, template engine, dan konfigurasi default lainnya).bashcd servbay-express-app npm install
1
2Tunggu hingga semua dependensi selesai diinstal.
Memodifikasi Output Default Proyek Express.js
Agar dapat memastikan proyek berjalan dengan baik, kita akan memodifikasi tampilan beranda (homepage) default.
Edit File
routes/index.js
File routing biasanya digunakan di dalam proyek Express.js untuk menangani permintaan pada URL tertentu. Buka file
routes/index.js
di direktori proyek Anda. File ini bertugas menangani HTTP GET pada root path/
. Ubah kode agar tidak lagi merender template Pug, melainkan langsung mengirimkan respons teks sederhana.javascriptvar express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { // Diubah untuk mengirim respons teks res.send('Hello ServBay!'); }); module.exports = router;
1
2
3
4
5
6
7
8
9
10Simpan file tersebut.
Masuk ke Mode Pengembangan
Selama pengembangan, biasanya Anda akan menjalankan development server lokal agar dapat langsung melihat perubahan. Proyek Express.js dapat dijalankan dengan perintah npm start
.
Jalankan Server dalam Mode Pengembangan
Pada root direktori proyek
servbay-express-app
, jalankan perintah berikut untuk menyalakan server. Kita akan menetapkan environment variablePORT
ke8585
sebagai port target dan mengaktifkan output debug denganDEBUG
.bashcd /Applications/ServBay/www/servbay-express-app PORT=8585 DEBUG=servbay-express-app:* npm start
1
2Terminal akan menampilkan informasi server yang sudah berjalan dan mendengarkan port
8585
.Konfigurasi Reverse Proxy Situs di ServBay
Karena aplikasi Express.js berjalan di port khusus (8585), bukan port web standar (80/443), kita perlu mengatur reverse proxy menggunakan fitur Situs / Websites pada ServBay. Web server bawaan ServBay (Caddy) akan menerima permintaan pada port 80/443 lalu meneruskannya ke aplikasi Express.js di
127.0.0.1:8585
.Buka control panel ServBay, pilih tab "Situs", lalu klik untuk menambahkan situs baru. Isikan konfigurasi berikut:
- Nama:
My first Express.js dev site
(nama agar mudah dikenali) - Domain:
servbay-express-test.servbay.demo
(domain.servbay.demo
otomatis menggunakan User CA ServBay untuk HTTPS) - Tipe Website: Pilih
Reverse Proxy
- IP:
127.0.0.1
(ataulocalhost
) - Port:
8585
(port tempat aplikasi Express.js berjalan)
Setelah selesai, simpan dan terapkan perubahan. ServBay akan secara otomatis mengatur web server dan membuat sertifikat SSL untuk domain
.servbay.demo
.Untuk proses pengaturan lebih rinci, silakan lihat dokumentasi ServBay pada Menambah Website Node.js Development.
- Nama:
Akses Website dalam Mode Pengembangan
Buka browser Anda dan akses domain yang sudah dikonfigurasi, misal:
https://servbay-express-test.servbay.demo
. Web server ServBay akan menerima request tersebut dan meneruskannya ke aplikasi Express.js di port 8585. Anda seharusnya melihat teks "Hello ServBay!" pada halaman.Karena ServBay mendukung custom domain dan SSL gratis (termasuk otomatis HTTPS untuk
.servbay.demo
), Anda dapat menikmati akses HTTPS di lingkungan lokal. Fitur ini membuat proses development semakin mirip dengan lingkungan produksi dan membantu menemukan potensi masalah lebih dini.
Deploy Versi Produksi
Setelah pengembangan proyek Express.js Anda selesai, Anda dapat mulai persiapan deployment ke lingkungan produksi. Menjalankan aplikasi dalam simulasi mode produksi di lokal sangat membantu untuk pengujian akhir.
Persiapan Lingkungan Produksi
Saat menjalankan di mode produksi, proyek Express.js biasanya menggunakan environment variable
NODE_ENV=production
. Hal ini dapat mempengaruhi perilaku berbagai library, seperti mematikan debug ataupun mengaktifkan performa yang lebih optimal. Pastikan aplikasi Anda merespons setting ini dengan baik.Menjalankan Server Mode Produksi
Jalankan server di mode produksi dengan perintah di bawah, bisa pada port berbeda (misal,
8586
) agar dapat menjalankan dua mode secara paralel, dan tetapkanNODE_ENV=production
.bashcd /Applications/ServBay/www/servbay-express-app PORT=8586 NODE_ENV=production npm start
1
2Layar terminal akan memperlihatkan server berjalan di port
8586
.Konfigurasi Reverse Proxy Situs (Produksi)
Sama seperti mode pengembangan, Anda bisa menambahkan satu lagi situs reverse proxy untuk produksi di control panel ServBay.
- Nama:
My first Express.js production site
- Domain:
servbay-express-test-prod.servbay.demo
(atau domain lokal lain sesuai kebutuhan) - Tipe Website: Pilih
Reverse Proxy
- IP:
127.0.0.1
- Port:
8586
(port aplikasi produksi)
Simpan dan terapkan perubahan.
- Nama:
Akses Website Mode Produksi
Buka browser dan akses domain produksi yang sudah diatur, contoh:
https://servbay-express-test-prod.servbay.demo
. Anda akan diarahkan ke aplikasi Express.js produksi di port 8586 menggunakan reverse proxy ServBay. Cara ini memungkinkan pengujian aplikasi dalam kondisi mirip produksi secara lokal.
Koneksi Database
ServBay mendukung berbagai paket database lokal seperti MariaDB, PostgreSQL, MongoDB, dan Redis. Jika paket database tersebut telah diaktifkan pada ServBay, maka proyek Express.js Anda dapat dengan mudah terhubung. Biasanya, ServBay sudah mengatur user dan password default, contohnya pada MariaDB/MySQL user root
dengan password password
, PostgreSQL user user
password password
, dengan database default servbay_default
. Anda bisa menyesuaikan koneksi berdasarkan informasi di panel database ServBay atau konfigurasi default tersebut.
Berikut adalah contoh pengaturan koneksi ke masing-masing database pada proyek Express.js (pastikan Anda sudah melakukan npm install <package-name>
untuk driver Node.js yang dibutuhkan):
Menghubungkan ke MongoDB
Pertama, install driver MongoDB
mongoose
:bashnpm install mongoose
1Lalu, pada kode aplikasi Anda (misal di
app.js
atau file konfigurasi database terpisah), lakukan koneksi berikut:javascriptvar mongoose = require('mongoose'); // Koneksi ke MongoDB lokal, dengan database 'servbay-express-app' // MongoDB di ServBay secara default tidak butuh autentikasi mongoose.connect('mongodb://localhost/servbay-express-app', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('Connected to MongoDB')) .catch(err => console.error('MongoDB connection error:', err));
1
2
3
4
5
6
7
8
9
10Pastikan paket MongoDB di ServBay sudah berjalan.
Menghubungkan ke Redis
Pasang library client Redis:
bashnpm install redis
1Lalu inisialisasi koneksi di aplikasi Anda:
javascriptvar redis = require('redis'); // Redis default ServBay berjalan di localhost:6379 tanpa password var client = redis.createClient({ host: 'localhost', port: 6379 }); client.on('connect', function() { console.log('Connected to Redis'); }); client.on('error', function (err) { console.log('Redis Error: ' + err); }); // Contoh: set dan get nilai key // client.set('mykey', 'Hello from Express!', redis.print); // client.get('mykey', function(err, reply) { // if (err) throw err; // console.log(reply); // Akan menampilkan "Hello from Express!" // }); // Gunakan object client untuk operasi Redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23Pastikan Redis ServBay sudah aktif.
Menghubungkan ke MariaDB / MySQL
ServBay mendukung MariaDB dan MySQL. Cara koneksinya serupa, Anda bisa gunakan package
mariadb
ataumysql2
. Contoh di bawah memakaimariadb
(bisa juga untuk MySQL):Install package:
bashnpm install mariadb # atau npm install mysql2
1Lakukan koneksi menggunakan kredensial default ServBay (
root
dengan passwordpassword
):javascriptvar mariadb = require('mariadb'); // MariaDB/MySQL ServBay berjalan di localhost:3306 var pool = mariadb.createPool({ host: 'localhost', port: 3306, // Port default user: 'root', // User default ServBay password: 'password', // Password default ServBay database: 'servbay_express_app', // Bisa didaftarkan lewat tool database di ServBay connectionLimit: 5 // Ukuran pool koneksi }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB/MySQL"); // object conn digunakan untuk query, misal: // conn.query("SELECT 1").then(...).catch(...).finally(() => conn.release()); conn.release(); // Lepaskan koneksi setelah selesai }) .catch(err => { console.log("Not connected due to error: " + err); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Sebelum melakukan koneksi, Anda mungkin perlu membuat database
servbay_express_app
di tool management ServBay (phpMyAdmin, Adminer, dll). Pastikan MariaDB/MySQL ServBay sudah berjalan.Menghubungkan ke PostgreSQL
Install paket client PostgreSQL:
bashnpm install pg
1Gunakan kredensial default ServBay: username
user
, passwordpassword
, database defaultservbay_default
.javascriptvar { Pool } = require('pg'); // PostgreSQL ServBay berjalan di localhost:5432 var pool = new Pool({ user: 'user', // User default ServBay host: 'localhost', database: 'servbay_default', // Database default ServBay, atau yang Anda buat sendiri password: 'password', // Password default ServBay port: 5432, // Port default }); pool.connect((err, client, done) => { if (err) { console.error('PostgreSQL connection error:', err); return; } console.log('Connected to PostgreSQL'); // object client digunakan untuk query // client.query('SELECT NOW()', (err, res) => { ... done(); }); done(); // Lepaskan client setelah selesai }); // Atau dengan async/await // try { // const client = await pool.connect(); // console.log('Connected to PostgreSQL'); // // const res = await client.query('SELECT NOW()'); // // console.log(res.rows[0]); // client.release(); // Lepaskan client setelah selesai // } catch (err) { // console.error('PostgreSQL connection error:', err); // }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31Pastikan PostgreSQL pada ServBay sudah berjalan.
Ringkasan
Dengan panduan ini, Anda telah mempelajari cara membuat, mengonfigurasi, dan menjalankan proyek Express.js menggunakan ServBay. Termasuk cara:
- Inisialisasi proyek dengan
express-generator
. - Menjalankan aplikasi Express.js di port spesifik.
- Mengonfigurasi reverse proxy di ServBay agar aplikasi Node.js bisa diakses via port HTTP/S standar.
- Menghubungkan aplikasi ke beragam database populer dalam lingkungan ServBay.
ServBay benar-benar menyederhanakan proses setup dan pengelolaan lingkungan pengembangan Node.js (Express.js) lokal, sehingga Anda dapat lebih fokus pada pengembangan kode inti. Berbagai fitur tambahan seperti sertifikat SSL otomatis, backup situs, dan log viewer turut membantu memperlancar workflow pengembangan lokal Anda.