Membuat dan Menjalankan Proyek Koa.js dengan ServBay
ServBay adalah lingkungan pengembangan web lokal untuk macOS dan Windows yang telah mengintegrasikan berbagai paket perangkat lunak yang umum dipakai pengembang, termasuk runtime Node.js dan beragam database. Panduan ini akan membantu Anda memanfaatkan kemudahan lingkungan ServBay untuk membuat, menjalankan, dan kelola proyek Koa.js Anda dengan cepat.
Apa itu Koa.js?
Koa.js merupakan kerangka kerja web generasi berikutnya yang dibangun dengan Node.js dan dikembangkan oleh tim Express.js. Koa dikenal karena desainnya yang sederhana, ekspresif, dan fitur-fitur yang tangguh, menjadikannya pilihan ideal untuk membangun aplikasi web dan API. Koa.js memanfaatkan fitur modern JavaScript, khususnya sintaks async/await
, sehingga penulisan operasi asinkron dan middleware jadi lebih sederhana, jelas, dan mudah dipelihara.
Fitur Utama Koa.js
- Berbasis async/await: Dirancang utama menggunakan
async/await
, membuat kontrol alur asinkron menjadi lebih intuitif. - Inti yang ringan: Koa memiliki inti yang kecil dan hanya memuat fitur dasar, serta mengandalkan middleware modular untuk menambah fungsionalitas.
- Middleware yang kuat: Menggunakan mekanisme middleware berlapis (cascading), alur penanganan permintaan jadi fleksibel dan jelas.
- Fokus pada web: Didedikasikan untuk pengembangan aplikasi web dan API, tanpa fitur tambahan yang tidak diperlukan.
Dengan Koa.js, pengembang dapat membangun layanan web yang berkinerja tinggi dan mudah dipelihara secara efektif.
Menyiapkan Lingkungan Pengembangan Koa.js dengan ServBay
ServBay menyediakan lingkungan siap pakai untuk pengembang Node.js, yang sudah dilengkapi runtime Node.js dan layanan database populer. Fitur Website di ServBay memudahkan Anda mengakses proyek Koa.js lokal Anda dengan domain kustom dan sertifikat SSL.
Persyaratan Awal
Pastikan Anda telah melakukan persiapan berikut sebelum memulai:
- Instalasi ServBay: Kunjungi situs resmi ServBay untuk mengunduh dan memasang versi terbaru ServBay.
- Instalasi Paket Node.js: Buka aplikasi ServBay, masuk ke panel Packages (Manajemen Paket), dan pastikan versi Node.js yang dibutuhkan sudah terpasang. Jika belum, pilih dan klik instal.
- Familiarisasi ServBay: Pahami cara mengaktifkan/menonaktifkan layanan di ServBay dan cara mengelola Website.
Membuat Proyek Koa.js
Gunakan direktori root website yang direkomendasikan ServBay yaitu /Applications/ServBay/www
sebagai lokasi proyek Anda.
Inisialisasi Direktori Proyek
Buka aplikasi Terminal, masuk ke direktori website ServBay, lalu buat folder proyek baru (misal
servbay-koa-app
). Kemudian masuk ke folder tersebut dan inisialisasi proyek Node.js baru:bashcd /Applications/ServBay/www mkdir servbay-koa-app cd servbay-koa-app npm init -y
1
2
3
4Perintah
npm init -y
akan membuat filepackage.json
default dengan cepat.Instal Koa.js
Di folder root proyek
servbay-koa-app
, install Koa.js dan definisi tipe (jika menggunakan TypeScript):bashnpm install koa # Jika Anda menggunakan TypeScript, tambahkan definisi tipe # npm install @types/koa --save-dev
1
2
3Buat File Entry Aplikasi
Di folder root proyek, buat file
app.js
lalu masukkan kode aplikasi Koa.js sederhana:javascriptconst Koa = require('koa'); const app = new Koa(); // Middleware: Mencatat info permintaan app.use(async (ctx, next) => { const start = Date.now(); await next(); const ms = Date.now() - start; console.log(`${ctx.method} ${ctx.url} - ${ms}ms`); }); // Middleware: Menangani permintaan ke root path app.use(async ctx => { ctx.body = 'Hello dari ServBay Koa.js App!'; }); // Menentukan port, prioritas pada variabel lingkungan PORT const port = process.env.PORT || 3000; // Menyalakan server HTTP app.listen(port, () => { console.log(`Server Koa.js berjalan di http://localhost:${port}`); console.log(`Path proyek: ${__dirname}`); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24Kode ini membuat aplikasi Koa sederhana dengan dua middleware: satu untuk mencatat waktu dan path permintaan, dan satu lagi untuk membalas permintaan ke root
/
dengan "Hello dari ServBay Koa.js App!". Aplikasi mendengarkan pada port yang ditentukan olehPORT
atau default3000
.
Masuk ke Mode Pengembangan
Selama pengembangan, biasanya Anda menjalankan proses Node.js lokal lalu mengakses aplikasi Koa.js lewat fitur Website ServBay.
Menjalankan Server Pengembangan Koa.js
Buka Terminal, masuk ke direktori
servbay-koa-app
, lalu jalankan fileapp.js
menggunakan perintahnode
. Untuk menghindari konflik port atau demi kemudahan konfigurasi ServBay, misalnya gunakan port khusus8585
:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8585 node app.js
1
2Terminal akan menampilkan informasi seperti
Server Koa.js berjalan di http://localhost:8585
, artinya server telah aktif dan mendengarkan pada port8585
. Biarkan jendela terminal ini terbuka agar server tetap berjalan.Konfigurasi Reverse Proxy Website di ServBay
Agar aplikasi Koa.js yang berjalan di
localhost:8585
dapat diakses dengan domain kustom, lakukan konfigurasi Website di ServBay menggunakan jenis reverse proxy.- Buka aplikasi ServBay.
- Navigasi ke panel Website.
- Klik tombol
+
di kiri bawah untuk menambah website baru. - Isi konfigurasi website:
- Name:
ServBay Koa.js Dev Site
- Domain:
servbay-koa-dev.servbay.demo
(disarankan memakai domain akhiran.servbay.demo
, ServBay akan otomatis membuat sertifikat SSL) - Type: pilih
Reverse Proxy
- IP Address:
127.0.0.1
(mengarah ke proses Node.js lokal) - Port:
8585
(port tempat Koa.js aplikasi aktif) - Document Root: Untuk reverse proxy, tidak wajib diisi; boleh kosong atau isi dengan path proyek
/Applications/ServBay/www/servbay-koa-app
.
- Name:
- Klik Save.
- Jika ada permintaan untuk menerapkan perubahan, klik Apply.
Setelah konfigurasi diproses, ServBay akan otomatis memperbarui file hosts lokal sehingga domain
servbay-koa-dev.servbay.demo
mengarah ke127.0.0.1
, dan permintaan ke domain tersebut dialihkan (reverse proxy) ke port8585
melalui Caddy atau Nginx bawaan ServBay. Karena memakai domain.servbay.demo
, ServBay User CA akan otomatis membuat dan memercayakan sertifikat SSL—akses lewat HTTPS aman.Untuk langkah detail, Anda bisa cek dokumentasi ServBay di bagian Menambah Website Node.js (pilih dokumentasi bahasa Inggris).
Mengakses Website Pengembangan Koa.js
Buka browser Anda, kunjungi
https://servbay-koa-dev.servbay.demo
.Jika konfigurasi sudah benar, Anda akan melihat halaman bertuliskan "Hello dari ServBay Koa.js App!". Artinya Anda berhasil mengakses server Koa.js lokal Anda melalui fitur Website ServBay. Setiap kali Anda mengubah file
app.js
dan restart proses Node.js, refresh browser untuk lihat hasil perubahan.
Deploy Versi Produksi (Simulasi)
Untuk simulasi lingkungan produksi, biasanya Anda memakai port, variabel lingkungan, atau cara menjalankan aplikasi yang berbeda. Reverse proxy ServBay juga bisa dipakai untuk skenario ini.
Menjalankan Server Produksi Koa.js (Simulasi)
Di jendela terminal baru, hentikan server pengembangan yang berjalan. Lalu, jalankan aplikasi dalam mode produksi, misal dengan port beda
8586
dan variabel lingkunganNODE_ENV
:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8586 NODE_ENV=production node app.js
1
2Ini akan menjalankan aplikasi Koa.js di port
8586
, mensimulasikan kondisi produksi.Konfigurasi Reverse Proxy Website ServBay (Simulasi Produksi)
Buat website baru di ServBay untuk simulasi produksi:
- Buka aplikasi ServBay dan masuk ke panel Website.
- Klik tombol
+
di kiri bawah tambahkan website baru. - Isi konfigurasi:
- Name:
ServBay Koa.js Prod Site
- Domain:
servbay-koa-prod.servbay.demo
(bisa pakai domain milik Anda sendiri dan request SSL gratis via ACME/Let's Encrypt) - Type:
Reverse Proxy
- IP Address:
127.0.0.1
- Port:
8586
(port aplikasi Koa.js produksi) - Document Root: Kosong atau isi path proyek.
- Name:
- Klik Save dan Apply.
Jika pakai domain
.servbay.demo
, sertifikat tetap memakai ServBay User CA. Jika memakai domain publik milik Anda, ServBay mendukung pengajuan dan pengelolaan SSL/TLS gratis via ACME (misal Let's Encrypt), sehingga makin mirip produksi nyata. Lihat dokumentasi ServBay bagian SSL untuk Website untuk detail.Mengakses Website Produksi Koa.js (Simulasi)
Buka browser, akses
https://servbay-koa-prod.servbay.demo
.Anda akan menemukan output yang sama seperti di pengembangan—namun permintaan diproksi via ServBay ke proses Node.js di port
8586
.
Koneksi ke Database
ServBay telah menyediakan sistem database populer seperti MongoDB, Redis, MariaDB (MySQL-compatible), dan PostgreSQL. Menghubungkan Koa.js ke database ini sangat mudah karena semuanya berjalan lokal dan dapat diakses via localhost
dengan konfigurasi default.
Berikut contoh kode Singkat Node.js untuk menghubungkan ke database ServBay. Pastikan database terkait sudah terinstal dan aktif via panel Packages ServBay.
Koneksi ke MongoDB
Pertama, instal driver Node.js untuk MongoDB (
mongoose
ataumongodb
):bashcd /Applications/ServBay/www/servbay-koa-app npm install mongoose # atau npm install mongodb
1
2Selanjutnya, tambahkan kode koneksi ke
app.js
atau modul lain:javascript// Menggunakan Mongoose untuk koneksi MongoDB const mongoose = require('mongoose'); // ServBay MongoDB default tanpa autentikasi, nama database bebas mongoose.connect('mongodb://localhost:27017/servbay-koa-app', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('Terkoneksi ke MongoDB')) .catch(err => console.error('Koneksi MongoDB gagal:', err)); // Catatan: Dalam aplikasi nyata, kode koneksi sebaiknya diletakkan di logic pengaktifan aplikasi // dan port hanya disimak setelah koneksi berhasil.
1
2
3
4
5
6
7
8
9
10
11
12
13Secara default, MongoDB di ServBay aktif di port
27017
, tanpa perlu user dan password. Bisa langsung sebut nama database—jika belum ada akan otomatis dibuat.Koneksi ke Redis
Instal library Redis untuk Node.js:
bashcd /Applications/ServBay/www/servbay-koa-app npm install redis
1
2Koneksi ke server Redis:
javascript// Menggunakan client redis untuk koneksi Redis const redis = require('redis'); // Membuat client Redis, default ke localhost:6379 const client = redis.createClient({ url: 'redis://localhost:6379' // Port default Redis ServBay adalah 6379 }); client.on('connect', () => { console.log('Terkoneksi ke Redis'); }); client.on('error', (err) => { console.error('Koneksi Redis gagal:', err); }); // Menghubungkan ke server Redis client.connect(); // Catatan: Dalam aplikasi nyata, tunggu koneksi sukses sebelum eksekusi perintah Redis // misal dengan async/await dan client.connect()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Redis ServBay default aktif di port
6379
, tanpa password.Koneksi ke MariaDB (atau MySQL)
MariaDB adalah fork dari MySQL dengan API sangat kompatibel. ServBay menyediakan MariaDB, penggunaannya sama seperti MySQL.
Instal driver Node.js MariaDB:
bashcd /Applications/ServBay/www/servbay-koa-app npm install mariadb # atau npm install mysql2 (lebih kompatibel, direkomendasikan)
1
2Koneksi dengan driver
mariadb
:javascript// Client mariadb untuk koneksi MariaDB const mariadb = require('mariadb'); // ServBay default password root MariaDB adalah 'password' const pool = mariadb.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // Pastikan DB sudah dibuat, atau ganti sesuai kebutuhan connectionLimit: 5 }); pool.getConnection() .then(conn => { console.log("Terkoneksi ke MariaDB"); conn.release(); // Release koneksi ke pool }) .catch(err => { console.error("Koneksi MariaDB gagal:", err); }); // Catatan: Mendapat koneksi dari pool itu asinkron.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Koneksi dengan driver
mysql2
(direkomendasikan):javascript// Client mysql2 untuk koneksi MariaDB/MySQL const mysql = require('mysql2/promise'); // Pakai versi promise // ServBay password root MariaDB default 'password' const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // Pastikan database sudah dibuat waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); pool.getConnection() .then(conn => { console.log("Terkoneksi ke MariaDB/MySQL dengan mysql2"); conn.release(); }) .catch(err => { console.error("Koneksi MariaDB/MySQL gagal:", err); }); // Catatan: Password root default bisa dilihat atau diubah di GUI ServBay, di pengaturan database. // Sebaiknya password tidak ditulis langsung di source code, gunakan environment variable.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25MariaDB ServBay default aktif di port
3306
. Password userroot
bisa dilihat di panel manajemen database ServBay. Databaseservbay_koa_app
mungkin perlu dibuat manual via ServBay atau lewat aplikasi klien seperti TablePlus, DBeaver, dll.Koneksi ke PostgreSQL
Instal driver Node.js PostgreSQL:
bashcd /Applications/ServBay/www/servbay-koa-app npm install pg
1
2Koneksi PostgreSQL:
javascript// Client pg untuk koneksi PostgreSQL const { Pool } = require('pg'); // ServBay default user 'user', password 'password' const pool = new Pool({ user: 'user', // User default ServBay host: 'localhost', database: 'servbay_koa_app', // Pastikan database sudah dibuat password: 'password', // Password default ServBay port: 5432, // Port default PostgreSQL di ServBay }); pool.connect((err, client, done) => { if (err) { console.error('Koneksi PostgreSQL gagal:', err); return; } console.log('Terkoneksi ke PostgreSQL'); client.release(); // Release koneksi ke pool }); // Catatan: Password default bisa dicek dan diubah di panel database ServBay. // Dianjurkan pakai environment variable.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23PostgreSQL ServBay aktif di port
5432
. Username dan password default dapat ditemukan di panel manajemen ServBay. Databaseservbay_koa_app
biasanya perlu dibuat manual.
Manajemen Database di ServBay
Anda juga bisa mengelola database ServBay dengan aplikasi GUI populer, seperti TablePlus, DBeaver, pgAdmin, dan MongoDB Compass. Semua database ServBay terhubung di 127.0.0.1
atau localhost
serta memakai port dan username/password default yang ditunjukkan di GUI ServBay.
- Cek/Ubah password default: Di aplikasi ServBay, buka panel database terkait, klik ikon pengaturan untuk melihat dan mengubah password user
root
(MariaDB) atauuser
(PostgreSQL). - Buat database/user baru: Pakai klien seperti TablePlus, DBeaver, pgAdmin, atau MongoDB Compass untuk manage database—bisa lewat command SQL atau GUI.
Catatan Penting
- Konflik port: Pastikan port Koa.js Anda (misal 8585, 8586) tidak sedang dipakai aplikasi lain.
- Status ServBay: Yakinkan aplikasi ServBay, Node.js, dan semua database yang dibutuhkan sudah aktif.
- File hosts: ServBay otomatis kelola file
hosts
, tapi jika domain bermasalah, cek entry di/etc/hosts
. - Firewall: Pastikan firewall macOS atau aplikasi pihak ketiga tidak memblokir akses ServBay dan proses Node.js.
- Log: Jika menemukan masalah, cek log ServBay (ada panel log) dan output terminal Node.js untuk kebutuhan debugging.
FAQ (Pertanyaan yang Sering Diajukan)
Tanya: Kenapa harus memakai reverse proxy di ServBay untuk mengakses proyek Koa.js saya?
Jawab: Reverse proxy (fitur Website ServBay) memberikan keunggulan:
- Simulasi produksi: Memakai domain kustom (misal
.servbay.demo
atau domain Anda sendiri) lebih menyerupai kondisi website nyata daripada sekadarlocalhost:PORT
. - Dukungan SSL: ServBay otomatis menyiapkan sertifikat SSL lokal, sehingga Anda dapat menguji HTTPS sejak tahap pengembangan.
- Manajemen terpusat: Semua website pengembangan Anda bisa dikelola dari satu tempat di ServBay.
- Port standar: Domain yang diakses browser memakai port 80/443, sedangkan aplikasi Node.js berjalan di port tinggi secara internal.
- Simulasi produksi: Memakai domain kustom (misal
Tanya: Bisakah saya mengakses langsung via
localhost:PORT
tanpa reverse proxy?Jawab: Bisa. Aplikasi Koa.js yang berjalan di port tertentu (misal 3000) dapat Anda akses langsung lewat browser (misal
http://localhost:PORT
). Namun Anda tidak mendapat fitur domain kustom, SSL, dan manajemen log dari Website ServBay. Untuk pengembangan yang mendekati produksi, disarankan memakai reverse proxy.Tanya: Berapa password default database ServBay? Bisa diubah?
Jawab: Password default database ditampilkan di panel Database ServBay—klik ikon pengaturan pada database yang dipilih (misal MariaDB atau PostgreSQL) untuk cek informasi username/password-nya. Anda juga bisa mengubah password di panel tersebut. Demi keamanan, sangat disarankan password default diganti.
Kesimpulan
Dengan panduan ini, Anda sekarang mampu menyiapkan lingkungan pengembangan Koa.js menggunakan ServBay di macOS. Kita telah membuat aplikasi Koa.js sederhana dan mengatur reverse proxy lewat fitur Website ServBay, sehingga aplikasi lokal dapat diakses dengan domain kustom dan HTTPS baik untuk mode pengembangan maupun simulasi produksi. Anda juga mengetahui cara menghubungkan aplikasi ke beragam database umum yang disediakan ServBay.
ServBay memberikan lingkungan pengembangan lokal terintegrasi dan mudah dikelola bagi pengembang Node.js, membuat Anda bisa lebih fokus menulis kode, sementara urusan konfigurasi jadi jauh lebih simpel. Dengan memanfaatkan fitur ServBay, produktivitas pengembangan Anda akan meningkat pesat.