Membina & Menjalankan Projek Express.js dengan ServBay
Apakah Itu Express.js?
Express.js adalah kerangka aplikasi web yang cepat, terbuka, dan minimalis berasaskan Node.js. Ia menawarkan pelbagai fungsi berkuasa untuk membina aplikasi web satu halaman (SPA), berbilang halaman, atau hibrid. Express.js merupakan salah satu kerangka paling popular dalam ekosistem Node.js kerana reka bentuknya yang ringkas dan fleksibel.
Ciri-ciri & Kelebihan Utama Express.js
- Ringkas dan Fleksibel: Express.js menyediakan API yang mudah digunakan serta mekanisme middleware yang fleksibel untuk mempercepat pembangunan aplikasi web.
- Middleware: Menyokong pelbagai middleware untuk pengurusan permintaan dan respons dengan mudah, termasuk parsing badan permintaan, pengurusan sesi dan pelayan fail statik.
- Routing: Keupayaan routing yang maju untuk mengendalikan permintaan berdasarkan HTTP method (GET, POST, PUT, DELETE dan lain-lain) dan laluan URL.
- Integrasi Luas: Boleh diintegrasi dengan enjin templat (seperti Pug, EJS, Handlebars), pangkalan data (seperti MongoDB, MySQL, PostgreSQL) serta modul Node.js lain.
- Komuniti & Ekosistem Mantap: Didukung oleh komuniti besar dengan pelbagai middleware serta plugin pihak ketiga — mudah mendapatkan bantuan dan sumber penyelesaian jika menghadapi masalah.
Dengan Express.js, pembangun dapat membina aplikasi web dan API berprestasi tinggi dengan pantas. Sebagai persekitaran pembangunan web tempatan yang canggih, ServBay menyediakan persekitaran Node.js yang mesra pengguna, serta pengurusan laman web (proksi terbalik) dan pangkalan data yang lancar untuk menjalankan projek Express.js.
Membina & Menjalankan Projek Express.js dengan ServBay
Dokumen ini membimbing anda menggunakan persekitaran Node.js yang disediakan oleh ServBay untuk mencipta, menyusun dan menjalankan projek Express.js. Kita akan menggunakan fungsi Website ServBay untuk menetapkan pelayan web, dan mengakses aplikasi tersebut melalui proksi terbalik. Cara ini amat sesuai untuk aplikasi yang perlu berjalan atas port khusus seperti Node.js, Python, Go, dan Java.
Pra-syarat
Pastikan anda mempunyai perkara berikut sebelum bermula:
- ServBay telah dipasang dengan berjaya pada macOS.
- Pakej Node.js telah dipasang dan diaktifkan dalam ServBay. Urus melalui tab "Pakej" pada panel kawalan ServBay.
- (Pilihan) Jika ingin menyambung ke pangkalan data, pastikan pakej pangkalan data berkaitan (MariaDB, PostgreSQL, MongoDB, Redis, MySQL) telah dipasang dan diaktifkan dalam ServBay.
- Mempunyai pengetahuan asas menggunakan Terminal atau command-line.
Membina Projek Express.js
Inisialisasi Projek
Buka Terminal dan navigasi ke direktori akar laman web yang dicadangkan oleh ServBay, iaitu
/Applications/ServBay/www
. Gunakan arahannpx express-generator
untuk menjana rangka asas projek Express.js dengan pantas.npx
adalah utiliti disediakan bersama npm v5.2+.bashcd /Applications/ServBay/www npx express-generator servbay-express-app
1
2Ini akan mencipta folder baru bernama
servbay-express-app
di dalam/Applications/ServBay/www
dengan struktur projek Express.js asas.Memasang Kebergantungan Projek
Masuk ke direktori projek
servbay-express-app
, dan gunakannpm install
untuk memuat turun segala kebergantungan (termasuk rangka kerja Express.js, enjin templat, servis fail statik dsb).bashcd servbay-express-app npm install
1
2Tunggu sehingga pemasangan kebergantungan selesai.
Ubah Output Halaman Utama Projek Express.js
Untuk memastikan projek dijalankan dengan betul, kita akan ubah paparan lalai halaman utamanya.
Kemaskini Fail
routes/index.js
Projek Express.js mengurus permintaan URL berbeza melalui fail routing. Buka
routes/index.js
dalam direktori projek — fail ini menangani permintaan GET ke akar (/
). Ubah kod di dalam supaya ia terus menghantar respons teks ringkas, bukan merender templat Pug.javascriptvar express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { // Ubah kepada hantar respons teks res.send('Hello ServBay!'); }); module.exports = router;
1
2
3
4
5
6
7
8
9
10Simpan fail tersebut.
Mod Pembangunan (Development Mode)
Semasa pembangunan, lazimnya kita ingin menjalankan pelayan pembangunan tempatan untuk menyemak perubahan secara langsung. Projek Express.js ini boleh dilancarkan menggunakan npm start
.
Jalankan Pelayan Pembangunan
Di direktori akar projek
servbay-express-app
, jalankan arahan di bawah untuk melancarkan pelayan pembangunan. Kita tentukan port8585
melalui pembolehubah persekitaranPORT
, dan aktifkan debug denganDEBUG
.bashcd /Applications/ServBay/www/servbay-express-app PORT=8585 DEBUG=servbay-express-app:* npm start
1
2Terminal akan memaparkan maklumat status, menunjukkan aplikasi Express.js kini mendengar pada port
8585
.Konfigurasi Proksi Terbalik Website di ServBay
Kerana aplikasi Express.js berjalan di port tersuai (8585), bukan port web standard (80/443), kita guna fungsi Website ServBay untuk mengkonfigurasi proksi terbalik. Pelayan web utama ServBay (secara lalai Caddy) akan mendengar di 80/443 dan menghalakan permintaan domain terpilih ke Express.js di
127.0.0.1:8585
.Buka panel kawalan ServBay, pergi ke tab "Website", klik tambah laman web baru. Konfigurasi seperti berikut:
- Nama:
My first Express.js dev site
- Domain:
servbay-express-test.servbay.demo
(penggunaan.servbay.demo
membolehkan SSL automatik melalui User CA ServBay) - Jenis Laman Web: Pilih
Proksi Terbalik
- IP:
127.0.0.1
(ataulocalhost
) - Port:
8585
Selepas selesai, simpan dan terapkan perubahan. ServBay secara automatik akan konfigurasikan pelayan web beserta sijil SSL bagi domain
.servbay.demo
.Untuk arahan langkah demi langkah, rujuk panduan menambah laman web pembangunan Node.js dalam dokumentasi ServBay.
- Nama:
Akses Website Pembangunan
Buka pelayar web anda dan lawati domain yang telah dikonfigurasi
https://servbay-express-test.servbay.demo
. Permintaan tersebut akan dialirkan ke aplikasi Express.js di port 8585 melalui proksi terbalik ServBay, dan anda akan nampak "Hello ServBay!" dipaparkan.ServBay menyokong nama domain tersuai dan sijil SSL percuma (termasuk HTTPS automatik untuk domain
.servbay.demo
), memudahkan anda menggunakan HTTPS dalam pembangunan tempatan—lebih mirip ke persekitaran produksi, membantu mengesan isu lebih awal.
Melancarkan Mod Pengeluaran (Production)
Sebaik projek Express.js siap dibangunkan, anda boleh menyediakan versi pengeluaran. Menjalankan aplikasi dalam mod produksi secara lokal membantu ujian terakhir sebelum tayangan sebenar.
Sediakan Persekitaran Pengeluaran
Biasanya, aplikasi Express.js dalam produksi akan menetapkan pembolehubah persekitaran
NODE_ENV
kepadaproduction
. Nilai ini mempengaruhi perilaku certain library, misalnya mematikan debug dan meningkatkan prestasi. Pastikan kod anda menyokongNODE_ENV=production
dengan betul.Jalankan Pelayan Pengeluaran
Dari direktori akar projek, gunakan arahan berikut untuk melancarkan pelayan pengeluaran pada port lain (misalnya
8586
), dan tetapkanNODE_ENV=production
.bashcd /Applications/ServBay/www/servbay-express-app PORT=8586 NODE_ENV=production npm start
1
2Terminal akan menunjukkan aplikasi kini mendengar pada port
8586
.Konfigurasi Proksi Terbalik ServBay (Pengeluaran)
Sama seperti sebelum ini, tambah satu lagi laman web proksi terbalik dalam ServBay untuk versi produksi.
- Nama:
My first Express.js production site
- Domain:
servbay-express-test-prod.servbay.demo
- Jenis Laman Web:
Proksi Terbalik
- IP:
127.0.0.1
- Port:
8586
Simpan dan terapkan perubahan.
- Nama:
Akses Website Mod Pengeluaran
Lawati
https://servbay-express-test-prod.servbay.demo
—proksi terbalik ServBay akan menyalurkan permintaan ke aplikasi Express.js pengeluaran di port 8586, membolehkan anda menguji aplikasi dengan konfigurasi produksi sepenuhnya secara tempatan.
Sambungan Pangkalan Data
ServBay menyokong pelbagai pakej pangkalan data popular untuk pembangunan tempatan termasuk MariaDB, PostgreSQL, MongoDB dan Redis. Jika pangkalan data ini diaktifkan dalam ServBay, projek Express.js anda boleh menyambung dengan mudah. Biasanya, terdapat tetapan pengguna & kata laluan lalai seperti: root/password untuk MariaDB/MySQL, user/password untuk PostgreSQL, dan servbay_default sebagai nama pangkalan data. Anda juga boleh semak tetapan tersebut di antara muka ServBay.
Di bawah adalah contoh cara menyambung pangkalan data ini dengan Express.js (pastikan anda telah npm install <package-name>
mana-mana pemacu berkaitan):
Sambung ke MongoDB
Mula-mula, pasang pemacu MongoDB
mongoose
:bashnpm install mongoose
1Dalam kod projek anda, gunakan konfigurasi berikut:
javascriptvar mongoose = require('mongoose'); // Sambung ke MongoDB tempatan dengan nama db: servbay-express-app // Lalai: tiada pengesahan untuk MongoDB pada ServBay 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 pakej MongoDB sudah berjalan dalam ServBay.
Sambung ke Redis
Pasang klien Redis:
bashnpm install redis
1Guna kod berikut:
javascriptvar redis = require('redis'); // Redis ServBay secara lalai berjalan pada localhost:6379 tanpa kata laluan 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 & get nilai // client.set('mykey', 'Hello from Express!', redis.print); // client.get('mykey', function(err, reply) { // if (err) throw err; // console.log(reply); // Papar "Hello from Express!" // }); // Gunakan objek client untuk operasi Redis lain
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23Pastikan Redis sudah dimulakan dalam ServBay.
Sambung ke MariaDB / MySQL
ServBay menyokong MariaDB dan MySQL. Anda boleh guna pakej
mariadb
ataumysql2
. Di sini digunakanmariadb
:bashnpm install mariadb # atau npm install mysql2
1Sambung dengan konfigurasi lalai ServBay (root:password):
javascriptvar mariadb = require('mariadb'); // MariaDB/MySQL ServBay di localhost:3306 var pool = mariadb.createPool({ host: 'localhost', port: 3306, // port lalai user: 'root', // pengguna lalai password: 'password', // kata laluan lalai database: 'servbay_express_app', // Buat db ini melalui ServBay (jika belum ada) connectionLimit: 5 // saiz pool }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB/MySQL"); // Guna objek conn untuk query // conn.query("SELECT 1").then(...).catch(...).finally(() => conn.release()); conn.release(); // Lepaskan sambungan selepas digunakan }) .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
21Pastikan anda telah cipta pangkalan data
servbay_express_app
melalui phpMyAdmin, Adminer, dsb. MariaDB/MySQL mesti dimulakan dalam ServBay.Sambung ke PostgreSQL
Pasang pemacu PostgreSQL:
bashnpm install pg
1Sambungan dengan maklumat lalai ServBay (user/password/servbay_default):
javascriptvar { Pool } = require('pg'); // PostgreSQL ServBay di localhost:5432 var pool = new Pool({ user: 'user', // pengguna lalai host: 'localhost', database: 'servbay_default', // pangkalan data lalai, atau ciptaan anda password: 'password', // kata laluan lalai port: 5432, // port lalai }); pool.connect((err, client, done) => { if (err) { console.error('PostgreSQL connection error:', err); return; } console.log('Connected to PostgreSQL'); // client digunakan untuk sebarang query // client.query('SELECT NOW()', (err, res) => { ... done(); }); done(); // Lepaskan sambungan client }); // 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 sambungan client // } 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 telah dimulakan dalam ServBay.
Rumusan
Dengan mengikut langkah-langkah di atas, anda kini berjaya membina, mengkonfigurasi, dan menjalankan projek Express.js menggunakan ServBay. Anda telah belajar cara:
- Inisialisasi projek dengan
express-generator
. - Menjalankan aplikasi Express.js pada port khusus.
- Mengkonfigurasi proksi terbalik laman web ServBay untuk mengakses aplikasi Node.js melalui port HTTP/S piawai.
- Menyambung pelbagai jenis pangkalan data dalam persekitaran pembangunan ServBay.
ServBay memudahkan proses pembangunan dan pengurusan persekitaran Node.js (Express.js) tempatan supaya anda boleh lebih fokus kepada kod. Fungsi lain seperti sijil SSL automatik, sandaran laman web, serta pelaporan log turut menjadikan aliran kerja pembangunan lebih efisien.