Cara Membuat & Menjalankan Projek Koa.js dengan ServBay
ServBay ialah persekitaran pembangunan web setempat yang menyokong macOS dan Windows, lengkap dengan pelbagai pakej popular seperti runtime Node.js dan pelbagai pangkalan data. Artikel ini akan membimbing anda untuk memanfaatkan ServBay agar lebih mudah, cepat dan cekap mencipta, mengurus dan menjalankan projek Koa.js anda.
Apa Itu Koa.js?
Koa.js merupakan rangka kerja web generasi baharu berasaskan Node.js, dibangunkan oleh pasukan di sebalik Express.js. Ia terkenal dengan kesederhanaan, ekspresi kod yang jelas dan ciri-ciri yang mantap—pilihan terbaik untuk membina aplikasi web dan API. Koa.js memanfaatkan sepenuhnya ciri-ciri JavaScript moden, terutamanya sintaks async/await
, memudahkan penulisan kod asynchronous dan middlewares, sekali gus menjadikan projek lebih terurus serta mudah diselenggara.
Ciri Utama Koa.js
- Berdasarkan Async/Await: Direka bentuk dengan fokus pada
async/await
, menjadikan kawalan aliran asynchronous lebih intuitif. - Inti Ringan: Perpustakaan utama Koa bersaiz kecil, hanya mengandungi ciri-ciri asas, dan dikembangkan melalui modul middleware.
- Middleware Bertaraf Tinggi: Menggunakan mekanisme middleware bertingkat (cascade), menyediakan pengurusan permintaan yang fleksibel dan jelas.
- Fokus pada Web: Memfokuskan pada pembangunan aplikasi web dan API, tanpa menyediakan ciri-ciri tambahan yang tidak diperlukan.
Dengan Koa.js, pembangun boleh membina perkhidmatan web yang berprestasi tinggi dan mudah diselenggara secara lebih efisien.
Menyediakan Persekitaran Koa.js dengan ServBay
ServBay menawarkan persekitaran sedia diguna untuk pembangun Node.js, termasuk runtime Node.js serta pelbagai servis pangkalan data. Dengan fungsi Website ServBay, anda boleh mengakses projek Koa.js setempat menggunakan nama domain dan sijil SSL tersuai dengan mudah.
Keperluan Asas
Pastikan perkara berikut telah disediakan sebelum memulakan:
- Pemasangan ServBay: Kunjungi laman rasmi ServBay untuk memuat turun dan memasang versi terkini.
- Pemasangan Pakej Node.js: Buka aplikasi ServBay, pergi ke bahagian Packages dan pastikan versi Node.js yang diperlukan telah dipasang. Jika belum, pilih dan klik ‘Install’.
- Asas Penggunaan ServBay: Fahami cara menghidupkan/mematikan servis serta mengurus laman Website dalam ServBay.
Membuat Projek Koa.js
ServBay mengesyorkan penggunaan direktori root laman web /Applications/ServBay/www
untuk menyimpan fail projek anda.
Inisialisasi Direktori Projek
Buka aplikasi Terminal, tukar ke direktori root ServBay dan cipta folder projek baharu (contoh:
servbay-koa-app
). Masuk ke folder tersebut dan inisialisasikan projek Node.js:bashcd /Applications/ServBay/www mkdir servbay-koa-app cd servbay-koa-app npm init -y
1
2
3
4Arahan
npm init -y
akan menghasilkan failpackage.json
secara automatik dengan konfigurasi lalai.Pemasangan Koa.js
Di folder projek
servbay-koa-app
, gunakan npm untuk memasang Koa.js dan, jika anda menggunakan TypeScript, pasang type definitions juga:bashnpm install koa # Jika menggunakan TypeScript, boleh pasang type definitions # npm install @types/koa --save-dev
1
2
3Cipta Fail Utama Aplikasi
Dalam folder projek, cipta fail bernama
app.js
dan masukkan kod Koa.js asas berikut:javascriptconst Koa = require('koa'); const app = new Koa(); // Middleware: Log maklumat 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: Kawal permintaan laluan root app.use(async ctx => { ctx.body = 'Hello dari ServBay Koa.js App!'; }); // Takrif port, utamakan pembolehubah persekitaran PORT const port = process.env.PORT || 3000; // Mulakan pelayan HTTP app.listen(port, () => { console.log(`Pelayan Koa.js berjalan di http://localhost:${port}`); console.log(`Laluan projek: ${__dirname}`); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24Kod di atas membina aplikasi Koa asas dengan dua middleware: satu untuk merekod masa dan laluan permintaan; satu lagi untuk membalas permintaan ke laluan
/
dengan mesej "Hello dari ServBay Koa.js App!". Aplikasi mendengar permintaan di port yang ditetapkan melalui pembolehubahPORT
atau lalai3000
.
Mod Pembangunan
Semasa pembangunan, biasanya anda akan menjalankan proses Node.js setempat untuk aplikasi Koa.js dan mengaksesnya melalui fungsi Website ServBay.
Menjalankan Pelayan Koa.js
Di Terminal, masuk ke folder projek dan jalankan fail
app.js
menggunakannode
. Untuk mengelak konflik port dan memudahkan konfigurasi ServBay, anda boleh tetapkan port khusus seperti8585
:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8585 node app.js
1
2Terminal akan memaparkan mesej seperti
Pelayan Koa.js berjalan di http://localhost:8585
menandakan pelayan telah berfungsi dan mendengar di port tersebut. Kekalkan tetingkap terminal ini terbuka.Konfigurasi Reverse Proxy Website ServBay
Untuk mengakses aplikasi Koa.js di
localhost:8585
menggunakan domain tersuai, lakukan konfigurasi reverse proxy di ServBay:- Buka aplikasi ServBay.
- Pergi ke bahagian Website.
- Klik butang
+
di bahagian kiri bawah untuk tambah laman web baru. - Isi konfigurasi laman:
- Nama:
ServBay Koa.js Dev Site
- Domain:
servbay-koa-dev.servbay.demo
(disarankan guna.servbay.demo
untuk sijil SSL automatik) - Jenis: Pilih
Reverse Proxy
- IP Address:
127.0.0.1
(ke proses Node.js setempat) - Port:
8585
(port yang Koa.js dengar) - Root Direktori: Untuk tipe reverse proxy tidak kritikal, boleh kosong atau masukkan laluan projek
/Applications/ServBay/www/servbay-koa-app
.
- Nama:
- Klik ‘Save’ dan terima arahan untuk ‘Apply changes’ jika perlu.
Selepas konfigurasi, ServBay akan kemas kini fail hosts setempat, mengarahkan domain
servbay-koa-dev.servbay.demo
ke127.0.0.1
, dan reverse proxy pelayan ServBay (Caddy atau Nginx) akan mengalirkan permintaan ke port8585
. Penggunaan domain.servbay.demo
membolehkan ServBay User CA mengeluarkan dan mempercayai sijil SSL secara automatik, membolehkan akses HTTPS.Jika ingin mengetahui lebih lanjut, rujuk dokumentasi ServBay tentang Menambah Website Node.js Development (pastikan pilih dokumen Bahasa Inggeris).
Akses Laman Pembangunan Koa.js
Buka pelayar web anda dan navigasi ke
https://servbay-koa-dev.servbay.demo
.Jika konfigurasi betul, anda akan lihat paparan "Hello dari ServBay Koa.js App!". Ini menunjukkan laman Koa.js telah berjaya diakses melalui reverse proxy ServBay. Apabila anda edit fail
app.js
dan rehatkan proses Node.js, refresh pelayar untuk melihat perubahan.
Deploy Simulasi Mod Produksi
Apabila menyimulasikan persekitaran produksi, anda mungkin perlukan port, pembolehubah persekitaran atau cara pelancaran yang berbeza. Konfigurasi reverse proxy ServBay tetap sama.
Menjalankan Pelayan Produksi Simulasi Koa.js
Dalam Terminal baru, hentikan pelayan pembangunan dan jalankan aplikasi dalam mod produksi simulasi, contoh gunakan port
8586
dan setkanNODE_ENV
:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8586 NODE_ENV=production node app.js
1
2Ini melancarkan instance Koa.js di port
8586
, mensimulasikan keadaan produksi.Konfigurasi Reverse Proxy Website ServBay (Simulasi Produk)
Buat laman web baru di ServBay untuk mod produksi simulasi:
- Buka aplikasi ServBay, pergi ke Website.
- Klik ‘+’ untuk tambah website baru.
- Isikan konfigurasi:
- Nama:
ServBay Koa.js Prod Site
- Domain:
servbay-koa-prod.servbay.demo
(atau domain awam anda sendiri, gunakan fungsi ACME/Let's Encrypt untuk sijil SSL percuma) - Jenis: Pilih
Reverse Proxy
- IP Address:
127.0.0.1
- Port:
8586
(port mod produksi Koa.js) - Root Direktori: kosongkan atau masukkan laluan projek.
- Nama:
- Simpan dan apply perubahan.
Domain
.servbay.demo
akan terus menggunakan sijil ServBay User CA. Jika menggunakan domain awam sendiri, ServBay mampu mengurus sijil SSL/TLS percuma melalui ACME (contoh: Let's Encrypt), mendekatkan simulasi dengan persekitaran produksi sebenar. Untuk maklumat lanjut, baca dokumentasi ServBay di bahagian Menggunakan SSL untuk Melindungi Website.Akses Laman Produksi Koa.js (Simulasi)
Buka pelayar anda dan pergi ke
https://servbay-koa-prod.servbay.demo
.Anda akan lihat laluan yang sama seperti dalam mod pembangunan, tetapi permintaan diproksi ke proses Node.js di port
8586
.
Sambungan ke Pangkalan Data
ServBay merangkumi pelbagai pangkalan data popular seperti MongoDB, Redis, MariaDB (MySQL compatible) dan PostgreSQL. Semua pangkalan data ini berfungsi setempat dan boleh dicapai melalui localhost
dengan konfigurasi lalai.
Berikut contoh kod Node.js untuk menyambung ke pangkalan data ServBay. Pastikan pangkalan data berkaitan telah dipasang dan diaktifkan melalui bahagian Packages ServBay.
Sambung ke MongoDB
Pasang driver MongoDB Node.js di direktori projek (contoh:
mongoose
ataumongodb
):bashcd /Applications/ServBay/www/servbay-koa-app npm install mongoose # atau npm install mongodb
1
2Kod sambungan:
javascript// Sambung MongoDB menggunakan Mongoose const mongoose = require('mongoose'); // Default MongoDB ServBay tanpa autentikasi, nama database boleh ditentukan mongoose.connect('mongodb://localhost:27017/servbay-koa-app', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('Bersambung ke MongoDB')) .catch(err => console.error('Masalah sambungan MongoDB:', err)); // Nota: dalam aplikasi sebenar, kod sambungan biasanya diletakkan di logik permulaan aplikasi // dan pelayan mula mendengar hanya selepas sambungan berjaya.
1
2
3
4
5
6
7
8
9
10
11
12
13MongoDB ServBay mendengar di port
27017
dan tidak memerlukan username/password secara lalai.Sambung ke Redis
Pasang klien Redis Node.js:
bashcd /Applications/ServBay/www/servbay-koa-app npm install redis
1
2Kod sambungan:
javascript// Sambung Redis menggunakan klien redis const redis = require('redis'); // Membuat klien Redis, default ke localhost:6379 const client = redis.createClient({ url: 'redis://localhost:6379' // Port default Redis ServBay }); client.on('connect', () => { console.log('Bersambung ke Redis'); }); client.on('error', (err) => { console.error('Masalah sambungan Redis:', err); }); // Sambung ke pelayan Redis client.connect(); // Nota: dalam aplikasi sebenar, sebaiknya tunggu sambungan berjaya dahulu sebelum operasi Redis // Contoh: gunakan async/await bersama client.connect()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Redis ServBay berjalan pada port
6379
, tiada kata laluan diperlukan secara lalai.Sambung ke MariaDB (atau MySQL)
MariaDB ialah cabang MySQL dengan API yang hampir sama. ServBay menyediakan pakej MariaDB, boleh digunakan seperti MySQL.
Pasang driver MariaDB untuk Node.js:
bashcd /Applications/ServBay/www/servbay-koa-app npm install mariadb # atau npm install mysql2 (lebih recommended)
1
2Contoh menggunakan driver
mariadb
:javascript// Sambung MariaDB menggunakan klien mariadb const mariadb = require('mariadb'); // Default password pengguna root MariaDB ServBay ialah 'password' const pool = mariadb.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // Pastikan database wujud; tukar jika perlu connectionLimit: 5 }); pool.getConnection() .then(conn => { console.log("Bersambung ke MariaDB"); conn.release(); // Lepaskan sambungan kembali ke pool }) .catch(err => { console.error("Masalah sambungan MariaDB:", err); }); // Nota: Mendapatkan sambungan dari pool adalah operasi asynchronous
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Contoh menggunakan
mysql2
(recommended):javascript// Sambung MariaDB/MySQL menggunakan klien mysql2 const mysql = require('mysql2/promise'); // Versi berasaskan Promise // Default password root MariaDB ServBay ialah 'password' const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // Pastikan database wujud waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); pool.getConnection() .then(conn => { console.log("Sambungan ke MariaDB/MySQL menggunakan mysql2 berjaya"); conn.release(); // Lepaskan sambungan ke pool }) .catch(err => { console.error("Masalah sambungan MariaDB/MySQL:", err); }); // Nota: Password root MariaDB default boleh dilihat dan diubah dalam pengurusan pangkalan data ServBay GUI. // Disarankan untuk tidak menulis kata laluan dalam kod sebenar, gunakan pembolehubah persekitaran.
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 mendengar di port
3306
. Kata laluan root standard boleh didapati di pengurusan pangkalan data ServBay. Anda mungkin perlu mencipta databaseservbay_koa_app
secara manual melalui ServBay atau klien pangkalan data seperti TablePlus, DBeaver, dsb.Sambung ke PostgreSQL
Pasang driver PostgreSQL Node.js:
bashcd /Applications/ServBay/www/servbay-koa-app npm install pg
1
2Kod sambungan:
javascript// Sambung PostgreSQL menggunakan klien pg const { Pool } = require('pg'); // Pengguna default 'user' dan password 'password' PostgreSQL ServBay const pool = new Pool({ user: 'user', // Pengguna default ServBay host: 'localhost', database: 'servbay_koa_app', // Pastikan database wujud password: 'password', // Kata laluan default ServBay port: 5432, // Port default PostgreSQL ServBay }); pool.connect((err, client, done) => { if (err) { console.error('Masalah sambungan PostgreSQL:', err); return; } console.log('Bersambung ke PostgreSQL'); client.release(); // Lepaskan sambungan }); // Nota: Password pengguna default boleh didapati dan diubah dalam pengurusan pangkalan data ServBay GUI. // Elakkan hardcode password dalam kod sebenar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23PostgreSQL ServBay berjalan di port
5432
. Username dan password default boleh didapati di pengurusan pangkalan data ServBay. Anda juga perlu mencipta databaseservbay_koa_app
secara manual.
Pengurusan Pangkalan Data ServBay
Selain dari kod, anda boleh mengurus pangkalan data ServBay menggunakan aplikasi GUI seperti TablePlus, DBeaver, pgAdmin, MongoDB Compass, dsb. Pangkalan data ServBay mendengar di 127.0.0.1
atau localhost
, gunakan port, username dan password seperti di ServBay GUI.
- Semak/Ubah password default: Di aplikasi ServBay, klik paket pangkalan data berkaitan dan tekan ikon tetapan untuk akses atau tukar password pengguna root (MariaDB) atau user (PostgreSQL).
- Cipta Database/Pengguna: Gunakan klien GUI yang disebut di atas untuk sambung pelayan pangkalan data ServBay, kemudian boleh cipta database, pengguna dan jadual baharu melalui SQL atau antaramuka visual.
Perkara Penting & Troubleshooting
- Konflik Port: Pastikan port Koa.js (contoh 8585, 8586) bebas dan tidak digunakan aplikasi lain.
- Status ServBay: Pastikan aplikasi ServBay serta semua pakej Node.js dan pangkalan data yang diperlukan sedang berjalan.
- Fail hosts: ServBay mengurus fail
hosts
secara automatik. Jika mengalami masalah domain, periksa/etc/hosts
. - Firewall: Pastikan firewall macOS atau aplikasi lain tidak menghalang akses rangkaian ServBay atau proses Node.js.
- Log: Untuk diagnosis masalah, semak log ServBay (di aplikasi ServBay) dan output terminal Node.js.
Soalan Lazim (FAQ)
Soalan: Kenapa perlu guna reverse proxy ServBay untuk akses projek Koa.js saya?
Jawapan: Reverse proxy melalui fungsi Website ServBay menawarkan beberapa kelebihan:
- Simulasi produksi: Guna nama domain tersuai (contoh
.servbay.demo
) menjadikan pengalaman lebih realistik berbandinglocalhost:PORT
. - Sokongan SSL: All-in-one SSL onboarding—ServBay urus sijil SSL untuk laman development, mudah dan pantas.
- Pengurusan Tersentral: Semua laman web pembangunan dikendalikan dan dipantau secara terpusat dalam ServBay.
- Sembunyikan port: Pengunjung akses pada port lalai 80/443, internal traffic di-port aplikasi Node.js.
- Simulasi produksi: Guna nama domain tersuai (contoh
Soalan: Bolehkan saya terus akses guna
localhost:PORT
tanpa reverse proxy?Jawapan: Boleh, anda memang boleh akses terus di pelayar menggunakan
http://localhost:PORT
untuk pembangunan atau ujian. Namun, anda akan kehilangan kelebihan seperti domain tersuai, SSL automatik, pengurusan log dari ServBay dan simulasi deployment sebenar. Untuk pengalaman pembangunan yang lebih realistik, reverse proxy ServBay adalah pilihan terbaik.Soalan: Apakah password pangkalan data default ServBay? Bagaimana mahu tukar?
Jawapan: Password default ServBay untuk pangkalan data boleh ditemui di GUI aplikasi. Klik ikon tetapan paket database (MariaDB/ PostgreSQL) dan semak atau tukar username dan password di situ. Pastikan tukar password demi keselamatan jika perlu.
Kesimpulan
Dengan mengikuti panduan ini, anda kini mampu menyediakan persekitaran pembangunan Koa.js di macOS menggunakan ServBay. Anda telah membina aplikasi asas Koa.js, mengkonfigurasi reverse proxy melalui fungsi Website ServBay untuk akses domain tersuai dan HTTPS, serta mengetahui cara sambung ke pelbagai pangkalan data popular ServBay.
ServBay ialah penyelesaian terbaik untuk pembangun Node.js yang menginginkan persekitaran tempatan, mesra pengurusan dan berkuasa—membolehkan anda fokus pada penulisan kod, bukan masalah konfigurasi. Manfaatkan sepenuhnya ciri-ciri ServBay untuk meningkatkan produktiviti anda sebagai pembangun.