Mencipta dan Menjalankan Projek Koa.js dengan ServBay
ServBay ialah persekitaran pembangunan web tempatan yang direka khusus untuk macOS, mengintegrasikan pelbagai pakej perisian yang sering digunakan oleh pembangun seperti runtime Node.js dan pelbagai pangkalan data. Artikel ini akan membimbing anda bagaimana memanfaatkan persekitaran mudah ServBay untuk mencipta, menjalankan, dan mengurus projek Koa.js anda dengan pantas.
Apakah itu Koa.js?
Koa.js ialah rangka kerja web generasi baharu berasaskan Node.js yang dibangunkan oleh pasukan Express.js. Ia terkenal kerana ringkas, ekspresif serta set ciri yang mantap, menjadikannya pilihan ideal untuk membina aplikasi web dan API. Koa.js memanfaatkan ciri moden JavaScript sepenuhnya, khususnya sintaks async/await
, yang sangat memudahkan penulisan operasi asinkron dan middleware, menjadikan kod lebih jelas dan mudah diselenggara.
Ciri-ciri Utama Koa.js
- Berasaskan async/await: Reka bentuk teras berpusat pada penggunaan
async/await
, menjadikan kawalan aliran asinkron lebih intuitif. - Inti yang ringan: Perpustakaan teras Koa sangat kecil dan hanya menawarkan fungsi asas; perluasan fungsi dicapai melalui middleware modular.
- Middleware yang berkuasa: Mengadaptasi mekanisme middleware bertingkat (cascading), dengan aliran pengendalian permintaan yang jelas dan fleksibel.
- Fokus kepada Web: Fokus kepada pembangunan aplikasi web dan API dengan tidak menyediakan fungsi tambahan yang tidak diperlukan.
Dengan menggunakan Koa.js, pembangun boleh membina perkhidmatan web yang berprestasi tinggi dan mudah disenggara dengan lebih cekap.
Menyediakan Persekitaran Pembangunan Koa.js dengan ServBay
ServBay menyediakan persekitaran "plug-and-play" untuk pembangun Node.js, lengkap dengan runtime Node.js dan pelbagai servis pangkalan data. Dengan ciri Website dalam ServBay, anda boleh mengakses projek Koa.js tempatan anda dengan mudah menerusi nama domain tersuai dan sijil SSL automatik.
Prasyarat
Sebelum bermula, pastikan anda melakukan langkah berikut:
- Pasang ServBay: Layari Laman Web Rasmi ServBay untuk memuat turun dan memasang versi terkini ServBay.
- Pasang Pakej Node.js: Buka aplikasi ServBay dan pergi ke bahagian Packages untuk memastikan versi Node.js yang diperlukan telah dipasang. Jika belum, pilih dan klik ‘Install’.
- Fahami operasi asas ServBay: Ketahui cara memulakan/memberhentikan servis serta mengurus laman web (Website) dalam ServBay.
Mencipta Projek Koa.js
Kita akan menggunakan direktori root laman web yang disarankan ServBay, iaitu /Applications/ServBay/www
, untuk menyimpan fail projek.
Inisialisasi Direktori Projek
Buka aplikasi Terminal, tukar direktori ke root laman web ServBay, dan cipta satu folder projek baharu (contoh:
servbay-koa-app
). Seterusnya, masuk ke folder tersebut dan inisialisasi projek Node.js baharu:bashcd /Applications/ServBay/www mkdir servbay-koa-app cd servbay-koa-app npm init -y
1
2
3
4Arahan
npm init -y
ini akan menghasilkan failpackage.json
dengan tetapan lalai secara pantas.Pasang Koa.js
Di dalam direktori root projek
servbay-koa-app
, pasang Koa.js dan, jika anda menggunakan TypeScript, pasang juga jenis definisinya:bashnpm install koa # Jika menggunakan TypeScript, pasang definisi jenis # npm install @types/koa --save-dev
1
2
3Cipta Fail Masuk Aplikasi
Dalam direktori root
servbay-koa-app
, cipta fail bernamaapp.js
dan tambahkan kod Koa.js ringkas berikut:javascriptconst Koa = require('koa'); const app = new Koa(); // Middleware: merekod 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: mengendalikan permintaan ke akar ('/') app.use(async ctx => { ctx.body = 'Hello from ServBay Koa.js App!'; }); // Tetapkan port, utamakan pembolehubah persekitaran PORT const port = process.env.PORT || 3000; // Mulakan pelayan HTTP app.listen(port, () => { console.log(`Koa.js server running on http://localhost:${port}`); console.log(`Project path: ${__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 mencipta aplikasi Koa asas dengan dua middleware: satu untuk merekod masa permintaan dan satu lagi untuk membalas permintaan ke laluan akar
/
dengan mesej "Hello from ServBay Koa.js App!". Aplikasi ini akan mendengar pada port yang ditetapkan oleh pembolehubah persekitaranPORT
atau port lalai3000
.
Memasuki Mod Pembangunan
Semasa pembangunan, biasanya kita mulakan proses Node.js tempatan untuk menjalankan aplikasi Koa.js dan mengaksesnya melalui ciri Website dalam ServBay.
Jalankan Pelayan Pembangunan Koa.js
Buka terminal, masuk ke direktori projek
servbay-koa-app
dan gunakan arahannode
untuk menjalankanapp.js
. Untuk mengelak konflik port atau memudahkan konfigurasi ServBay, anda boleh menetapkan port, misalnya8585
:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8585 node app.js
1
2Terminal akan memaparkan maklumat seperti
Koa.js server running on http://localhost:8585
, menandakan pelayan berjaya dimulakan dan mendengar pada port8585
. Biarkan window terminal ini terbuka agar pelayan terus berjalan.Konfigurasi Proksi Songsang Website dalam ServBay
Untuk akses melalui nama domain tersuai ke aplikasi Koa.js yang berjalan di
localhost:8585
, anda perlu konfigurasi satu Website dalam ServBay yang menggunakan fungsi proksi songsang.- Buka aplikasi ServBay.
- Pergi ke bahagian Website.
- Klik butang
+
di bawah kiri untuk menambah laman web baharu. - Isikan konfigurasi seperti berikut:
- Nama:
ServBay Koa.js Dev Site
- Domain:
servbay-koa-dev.servbay.demo
(Disarankan menggunakan domain berakhiran.servbay.demo
untuk sijil SSL automatik Serbay) - Jenis: Pilih
Reverse Proxy (Proksi Songsang)
- Alamat IP:
127.0.0.1
(Menuju ke proses Node.js tempatan) - Port:
8585
(Port aplikasi Koa.js) - Root Directory: Untuk jenis proksi songsang, boleh dibiarkan kosong atau diisi laluan projek
/Applications/ServBay/www/servbay-koa-app
.
- Nama:
- Klik Simpan.
- ServBay mungkin meminta anda untuk menerapkan perubahan; sila klik 'Apply'.
Selepas konfigurasi, ServBay akan mengemas kini fail hosts tempatan anda, memetakan
servbay-koa-dev.servbay.demo
kepada127.0.0.1
, dan melalui pelayan terbina dalam (Caddy atau Nginx), permintaan ke domain ini akan diproksi-kan kelocalhost:8585
. Penggunaan domain.servbay.demo
bermakna ServBay User CA akan secara automatik mengeluarkan dan mempercayai sijil SSL untuk domain ini, membolehkan anda mengakses secara selamat melalui HTTPS.Untuk langkah lebih terperinci, rujuk dokumentasi ServBay bahagian menambah laman web pembangunan Node.js (pilih dokumen versi Bahasa Inggeris).
Akses Website Pembangunan Koa.js
Buka pelayar web anda dan lawati
https://servbay-koa-dev.servbay.demo
.Jika semuanya dikonfigurasi dengan betul, anda akan melihat halaman memaparkan "Hello from ServBay Koa.js App!". Ini bermakna anda berjaya mengakses pelayan pembangunan Koa.js yang dijalankan secara tempatan melalui ciri Website ServBay. Sebarang perubahan pada fail
app.js
akan ditunjukkan apabila anda mulakan semula proses Node.js dan muat semula pelayar.
Penyebaran Versi Produksi (Simulasi)
Apabila mensimulasikan persekitaran produksi, anda mungkin ingin menggunakan port berbeza, pembolehubah persekitaran, atau cara permulaan yang berlainan. Konfigurasi proksi songsang dalam ServBay juga sesuai untuk keadaan ini.
Jalankan Pelayan Produksi Koa.js (Simulasi)
Dalam tetingkap terminal baru, hentikan pelayan pembangunan terdahulu (jika masih berjalan), dan mulakan aplikasi dalam mod simulasi produksi, misalnya port
8586
dengan menetapkanNODE_ENV
:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8586 NODE_ENV=production node app.js
1
2Ini akan memulakan instans Koa.js pada port
8586
meniru operasi dalam persekitaran produksi.Konfigurasi Website Proksi Songsang untuk Produksi (Simulasi)
Ulangi langkah yang sama dalam ServBay untuk cipta satu laman web baru bagi simulasi persekitaran produksi:
- Buka ServBay dan ke bahagian Website.
- Klik butang
+
untuk laman baru. - Lengkapkan konfigurasi berikut:
- Nama:
ServBay Koa.js Prod Site
- Domain:
servbay-koa-prod.servbay.demo
(Atau gunakan domain sendiri dan guna fungsi ACME/Let's Encrypt ServBay untuk sijil SSL) - Jenis: Pilih
Reverse Proxy (Proksi Songsang)
- Alamat IP:
127.0.0.1
- Port:
8586
(Aplikasi Koa.js dalam simulasi produksi) - Root Directory: Kosongkan atau isikan laluan projek.
- Nama:
- Klik Simpan dan Apply.
Jika anda gunakan domain .servbay.demo, sijil CA ServBay akan digunakan secara automatik. Jika menggunakan domain awam anda sendiri, ServBay menyokong ACME (contohnya Let's Encrypt) untuk sijil SSL/TLS percuma, mensimulasikan penggunaan di persekitaran sebenar. Rujuk bahagian gunakan SSL untuk melindungi laman web dalam dokumentasi ServBay untuk maklumat lanjut.
Akses Website Produksi Koa.js (Simulasi)
Buka pelayar web anda dan kunjungi
https://servbay-koa-prod.servbay.demo
.Anda akan melihat paparan halaman yang sama seperti di persekitaran pembangunan, tetapi kali ini permintaan akan disalurkan melalui proksi songsang ServBay ke proses Node.js di port
8586
.
Sambungan ke Pangkalan Data
ServBay disertakan dengan pelbagai sistem pangkalan data popular seperti MongoDB, Redis, MariaDB (serasi MySQL), dan PostgreSQL. Anda boleh menghubungkan projek Koa.js kepada pangkalan data ini dengan mudah kerana semua servis berjalan secara tempatan dan boleh diakses melalui localhost
dengan konfigurasi lalai.
Berikut contoh kod Node.js untuk menyambung ke pelbagai pangkalan data dalam ServBay. Pastikan anda telah memasang pangkalan data berkaitan melalui bahagian Packages dalam ServBay dan servis sudah berjalan.
Menyambung ke MongoDB
Pasang driver Node.js MongoDB (seperti
mongoose
ataumongodb
) dalam direktori projek anda:bashcd /Applications/ServBay/www/servbay-koa-app npm install mongoose # atau npm install mongodb
1
2Kemudian, di dalam fail
app.js
atau modul lain, masukkan kod sambungan:javascript// Sambung ke MongoDB menggunakan Mongoose const mongoose = require('mongoose'); // MongoDB ServBay secara lalai tidak memerlukan kebenaran; nama DB boleh ditetapkan sendiri mongoose.connect('mongodb://localhost:27017/servbay-koa-app', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('Connected to MongoDB')) .catch(err => console.error('MongoDB connection error:', err)); // Nota: Dalam aplikasi sebenar, kod sambungan biasanya diletak semasa permulaan aplikasi // dan hanya mendengar port selepas berjaya sambung.
1
2
3
4
5
6
7
8
9
10
11
12
13MongoDB dalam ServBay biasanya menggunakan port
27017
dan tiada kata laluan diperlukan secara lalai. Anda boleh terus tentukan nama pangkalan data (jika belum wujud akan dibuat secara automatik).Menyambung ke Redis
Pasang klien Node.js untuk Redis:
bashcd /Applications/ServBay/www/servbay-koa-app npm install redis
1
2Sambung ke pelayan Redis:
javascript// Sambung ke Redis menggunakan klien redis const redis = require('redis'); // Cipta klien Redis, secara lalai sambung ke localhost:6379 const client = redis.createClient({ url: 'redis://localhost:6379' // Redis dalam ServBay lalai pada port 6379 }); client.on('connect', () => { console.log('Connected to Redis'); }); client.on('error', (err) => { console.error('Redis connection error:', err); }); // Sambung ke pelayan Redis client.connect(); // Nota: Dalam aplikasi sebenar, anda perlu menunggu sambungan sebelum operasi Redis // Contohnya 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 dalam ServBay secara lalai menggunakan port
6379
dan tiada kata laluan diperlukan.Menyambung ke MariaDB (atau MySQL)
MariaDB ialah cabang MySQL dan serasi dari segi API. ServBay menyertakan pakej MariaDB dan anda boleh menggunakannya seperti MySQL.
Pasang driver Node.js untuk MariaDB:
bashcd /Applications/ServBay/www/servbay-koa-app npm install mariadb # atau npm install mysql2 (lebih baik dari segi keserasian, disyorkan)
1
2Sambung menggunakan driver
mariadb
:javascript// Sambung ke MariaDB menggunakan klien mariadb const mariadb = require('mariadb'); // Kata laluan lalai pengguna root MariaDB dalam ServBay adalah 'password' const pool = mariadb.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // Pastikan DB telah diwujudkan, atau ubah jika perlu connectionLimit: 5 }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB"); conn.release(); // Lepaskan sambungan kembali ke pool }) .catch(err => { console.error("MariaDB connection error:", err); }); // Nota: Pengambilan sambungan dari pool adalah operasi asinkron
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Sambungan menggunakan driver
mysql2
(disarankan):javascript// Sambung ke MariaDB/MySQL menggunakan klien mysql2 const mysql = require('mysql2/promise'); // Versi promise // Kata laluan lalai pengguna root MariaDB adalah 'password' const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // Pastikan DB telah diwujudkan waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB/MySQL using mysql2"); conn.release(); // Lepaskan sambungan kembali ke pool }) .catch(err => { console.error("MariaDB/MySQL connection error:", err); }); // Nota: Kata laluan root lalai boleh disemak/ubah melalui panel tetapan DB di GUI ServBay. // Untuk projek sebenar, elakkan hardcode kata laluan—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 dalam ServBay secara lalai berjalan pada port
3306
. Kata laluan root boleh didapati pada antaramuka pengurusan ServBay dan anda perlu cipta pangkalan dataservbay_koa_app
secara manual jika belum ada, sama ada melalui ServBay atau klien GUI seperti TablePlus, DBeaver dsb.Menyambung ke PostgreSQL
Pasang driver Node.js untuk PostgreSQL:
bashcd /Applications/ServBay/www/servbay-koa-app npm install pg
1
2Sambung ke pelayan PostgreSQL:
javascript// Sambung ke PostgreSQL menggunakan klien pg const { Pool } = require('pg'); // Pengguna lalai ServBay untuk PostgreSQL adalah 'user' dengan kata laluan 'password' const pool = new Pool({ user: 'user', // Pengguna lalai ServBay host: 'localhost', database: 'servbay_koa_app', // Pastikan DB telah diwujudkan password: 'password', // Kata laluan lalai ServBay port: 5432, // Port lalai PostgreSQL }); pool.connect((err, client, done) => { if (err) { console.error('PostgreSQL connection error:', err); return; } console.log('Connected to PostgreSQL'); client.release(); // Lepaskan sambungan kembali ke pool }); // Nota: Kata laluan 'user' lalai boleh disemak/ubah dari GUI ServBay. // Elakkan hardcode kata laluan dalam projek sebenar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23PostgreSQL dalam ServBay mendengar pada port
5432
. Maklumat pengguna dan kata laluan lalai ada dalam panel pengurusan pangkalan data ServBay. Anda juga perlu cipta pangkalan dataservbay_koa_app
secara manual jika belum wujud.
Pengurusan Pangkalan Data dalam ServBay
Selain menyambung melalui kod, anda boleh menggunakan alat GUI untuk mengurus pangkalan data ServBay. Konfigurasi lalai mendengar pada 127.0.0.1
atau localhost
, dan hanya perlukan info port serta nama pengguna/kata laluan (boleh disemak di antaramuka GUI ServBay).
- Semak/ubah kata laluan lalai: Dalam aplikasi ServBay, pilih pakej pangkalan data yang berkaitan, klik ikon tetapan untuk melihat atau mengubah kata laluan untuk pengguna
root
(MariaDB) atauuser
(PostgreSQL). - Cipta DB/pengguna: Gunakan alat klien seperti TablePlus, DBeaver, pgAdmin, MongoDB Compass dsb. untuk menyambung ke servis DB ServBay dan lakukan operasi penciptaan DB, pengguna atau jadual.
Perkara Penting
- Konflik port: Pastikan port yang digunakan oleh aplikasi Koa.js (contohnya 8585, 8586) tidak juga digunakan oleh program lain pada sistem anda.
- Status ServBay: Pastikan aplikasi ServBay serta pakej Node.js dan pangkalan data yang diperlukan sedang berjalan.
- Fail hosts: ServBay secara automatik mengurus fail
hosts
, tetapi jika anda mengalami isu resolusi domain, periksa/etc/hosts
untuk entri berkaitan. - Firewall: Pastikan firewall macOS atau pihak ketiga tidak menyekat sambungan rangkaian ServBay atau proses Node.js.
- Log: Jika menghadapi masalah, semak log dalam antaramuka aplikasi ServBay (tab log) dan output terminal proses Node.js untuk diagnosis.
Soalan Lazim (FAQ)
S: Kenapa perlu gunakan proksi songsang ServBay untuk akses projek Koa.js saya?
J: Terdapat beberapa kelebihan menggunakan proksi songsang (melalui ciri Website ServBay):
- Simulasi persekitaran produksi: Menggunakan domain khas (seperti
.servbay.demo
atau domain sendiri) lebih menyerupai cara akses web sebenar berbandinglocalhost:PORT
. - Sokongan SSL: ServBay boleh menyediakan sijil SSL secara automatik untuk laman web tempatan (menggunakan CA dalaman atau Let's Encrypt), membolehkan ujian HTTPS semasa pembangunan.
- Pengurusan sepadu: Anda boleh mengurus semua laman web pembangunan tempatan melalui satu aplikasi, dengan mudah serta efisien.
- Penyembunyian port: Pelawat luar (jika dibenarkan) atau pelayar hanya perlu akses port standard 80/443; port tinggi hanya digunakan secara dalaman.
- Simulasi persekitaran produksi: Menggunakan domain khas (seperti
S: Bolehkah saya tidak menggunakan proksi songsang dan akses terus dengan
localhost:PORT
?J: Ya, anda boleh. Jika aplikasi Koa.js anda mendengar terus pada sesuatu port (cth. 3000 atau lain-lain), anda boleh akses melalui
http://localhost:PORT
. Namun, anda tidak akan menikmati kemudahan domain tersuai, SSL automatik, pengurusan log, dan keseragaman persekitaran yang disediakan oleh ServBay. Untuk pembangunan yang benar-benar mirip produksi, penggunaan proksi songsang ServBay sangat digalakkan.S: Apakah kata laluan lalai pangkalan data dalam ServBay? Bagaimana untuk mengubahnya?
J: Kata laluan lalai pangkalan data boleh disemak dalam panel Database aplikasi ServBay. Klik ikon tetapan di sebelah pangkalan data (contohnya MariaDB atau PostgreSQL), dan anda akan nampak butiran pengguna/kata laluan lalai dalam tetingkap konfigurasi. Anda juga boleh mengubahnya di sana. Untuk keselamatan, disarankan agar anda mengubah kata laluan lalai ini.
Kesimpulan
Dengan panduan ini, anda kini seharusnya mahir memasang dan menggunakan ServBay untuk membina persekitaran pembangunan Koa.js pada macOS. Kita telah mencipta aplikasi Koa.js asas, mengkonfigurasi proksi songsang menerusi Website ServBay, serta membolehkan akses melalui domain tersuai dan HTTPS untuk kedua-dua situasi pembangunan dan simulasi produksi. Di samping itu, anda juga telah mempelajari cara menyambung ke pelbagai pangkalan data popular yang disediakan ServBay.
ServBay menyediakan persekitaran pembangunan tempatan yang terintegrasi dan mudah diurus untuk pembangun Node.js, membolehkan anda fokus kepada penulisan kod tanpa perlu runsing dengan konfigurasi persekitaran yang rumit. Dengan ServBay, anda boleh meningkatkan kecekapan pembangunan dengan ketara.