Konfigurasi dan Jalankan Projek LoopBack di ServBay
Apakah itu LoopBack?
LoopBack ialah kerangka kerja sumber terbuka Node.js yang sangat fleksibel dibangunkan oleh IBM, direka khusus untuk membina API dan perkhidmatan mikro (microservices) dengan pantas. Ia mengaplikasikan pendekatan pembangunan berasaskan model (Model-Driven Development - MDD), membolehkan pembangun mendefinisikan model data secara efisien dan menghasilkan API RESTful secara automatik. Kerangka LoopBack didatangkan dengan pelbagai ciri terbina dalam, termasuk sambungan sumber data, pengesahan pengguna, kawalan akses, penjelajah API, serta sokongan untuk banyak pangkalan data dan protokol.
Ciri Utama dan Kelebihan LoopBack
- Pembangunan Berasaskan Model (MDD): Definisikan model data dengan cara intuitif dan kerangka secara automatik menjana endpoint API beserta logik pengesahan data.
- Sokongan Pelbagai Sumber Data: Mudah disambung ke pangkalan data utama (seperti MongoDB, MySQL, PostgreSQL, MariaDB dan lain-lain), termasuk perkhidmatan RESTful dan SOAP.
- Alat CLI yang Berkuasa: LoopBack CLI menyediakan perintah lengkap untuk memudahkan inisialisasi projek, pendefinisian model, konfigurasi sumber data dan tugas pembangunan lain.
- Modular & Boleh Dikembangkan: Reka bentuk yang fleksibel, menyokong integrasi pustaka atau servis pihak ketiga melalui komponen dan ekstensi untuk memenuhi keperluan perniagaan tertentu.
- Ciri Keselamatan Terbina Dalam: Pengesahan pengguna dan kawalan akses disediakan secara out-of-the-box untuk membantu pembangun membina API yang selamat dengan pantas.
Dengan LoopBack, anda dapat meningkatkan kecekapan membina backend aplikasi web dan API, sekaligus mencipta aplikasi berprestasi tinggi yang mudah diselenggara.
Menetapkan Projek LoopBack Menggunakan ServBay
Panduan ini menerangkan cara anda boleh menggunakan persekitaran Node.js dalam ServBay untuk mencipta serta menjalankan projek LoopBack. Kita juga akan menggunakan fungsi 'Laman Web' di ServBay untuk menyiapkan pelayan web tempatan dan mengkonfigurasi proksi terbalik supaya permintaan ke port aplikasi LoopBack dapat diakses dengan mudah semasa pembangunan atau debugging.
Mencipta Projek LoopBack
Pasang CLI LoopBack
Sebelum memulakan, pastikan anda telah memasang dan mengaktifkan pakej Node.js dalam ServBay. Buka terminal dan pasang alat CLI LoopBack secara global menggunakan npm:
bashnpm install -g @loopback/cli
1Inisialisasi Projek
Navigasi ke direktori root laman web yang disarankan ServBay
/Applications/ServBay/www
, kemudian gunakan CLI LoopBack untuk memulakan projek aplikasi baru. Disarankan menamakan projek dengan huruf kecil dan tanda sempang, contohservbay-loopback-app
:bashcd /Applications/ServBay/www lb4 app servbay-loopback-app
1
2CLI akan memandu anda melalui tetapan projek, termasuk pemilihan ciri (REST API, serialization, authentication, dan sebagainya) serta struktur projek. Pilih mengikut keperluan anda.
Pasang Pergantungan Projek
Masuk ke direktori projek baru dan pasang pergantungan Node.js yang diperlukan:
bashcd servbay-loopback-app npm install
1
2
Mengubah Kandungan Output Projek LoopBack (Pilihan)
Bagi menunjukkan bagaimana anda boleh mengakses aplikasi menerusi ServBay, kita boleh ubah endpoint /ping
lalai supaya ia memulangkan respons khas.
Edit Fail
src/controllers/ping.controller.ts
Cari fail
src/controllers/ping.controller.ts
dalam projek dan ubah kandungannya seperti di bawah supaya endpoint/ping
memulangkan string "Hello ServBay!":typescriptimport {get} from '@loopback/rest'; export class PingController { constructor() {} @get('/ping') ping(): string { // Ubah kandungan balikkan kepada "Hello ServBay!" return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
11
Menjalankan Projek dalam Mod Pembangunan
Semasa pembangunan, biasanya anda akan jalankan pelayan pembangunan LoopBack untuk iterasi dan debugging lebih pantas. Kita akan mengakses pelayan pembangunan ini melalui proksi terbalik ServBay.
Jalankan Pelayan Pembangunan
Dalam root projek, jalankan aplikasi LoopBack melalui terminal. Biasanya aplikasi LoopBack akan mendengar pada port tertentu. Anda boleh setkan pembolehubah persekitaran
PORT
, contoh pada port8585
:bashcd /Applications/ServBay/www/servbay-loopback-app PORT=8585 npm start
1
2Selepas aplikasi bermula, anda akan lihat output seperti "Server is running at http://[::1]:8585" di terminal.
Konfigurasi Laman Web ServBay (Proksi Terbalik)
Buka panel kawalan ServBay dan navigasi ke seksyen 'Laman Web'. Klik butang tambah untuk bina laman web proksi terbalik yang baharu. Ia akan mengalihkan permintaan dari domain & port luaran ke alamat dan port aplikasi LoopBack anda:
- Nama: Contoh
Laman Dev LoopBack Pertama Saya
(untuk pengenalan dalam ServBay) - Domain: Contoh
servbay-loopback-dev.servbay.demo
(domain tempatan untuk akses pelayar) - Jenis Laman: Pilih
Proksi Terbalik (Reverse Proxy)
- IP: Masukkan
127.0.0.1
(aplikasi LoopBack berjalan secara tempatan) - Port: Masukkan
8585
(port yang didengari oleh LoopBack)
Selesai konfigurasi, simpan dan aplikasikan perubahan pada ServBay. ServBay akan mengkonfigurasi DNS tempatan (dengan mengubah fail
/etc/hosts
atau guna ServBay Helper Tool) dan pelayan web (Caddy atau Nginx), membolehkan akses ke aplikasi melalui domain yang telah ditentukan.Untuk langkah lanjut menambah laman web proksi terbalik dalam ServBay, rujuk dokumentasi: Menambah Laman Pembangunan Node.js.
- Nama: Contoh
Akses Aplikasi Pembangunan
Buka pelayar web dan lawati domain serta endpoint aplikasi anda, contoh:
https://servbay-loopback-dev.servbay.demo/ping
.ServBay akan secara automatik menyediakan sijil SSL untuk laman tempatan (melalui ServBay User CA atau ServBay Public CA), jadi anda boleh akses aplikasi pembangunan dengan selamat melalui HTTPS — ini meniru situasi produksi dan membantu anda mengesan isu berkaitan SSL awal-awal lagi. Untuk lanjut, rujuk: Melindungi Laman Web dengan SSL.
Deploy Versi Produksi (Pilihan)
Apabila projek LoopBack anda sudah sedia di deploy, anda mungkin ingin menjalankannya dalam mod produksi. Dalam mod ini, aplikasi lebih berprestasi dan log debugging diminimakan.
Jalankan Pelayan Produksi
Dalam root projek, jalankan aplikasi dalam mod produksi. Tetapkan contoh port
8586
, dan setkanNODE_ENV
kepadaproduction
:bashcd /Applications/ServBay/www/servbay-loopback-app PORT=8586 NODE_ENV=production npm start
1
2Konfigurasi Laman Web ServBay (Proksi Terbalik)
Kembali ke panel kawalan pada bahagian 'Laman Web', tambah atau sunting laman web proksi terbalik supaya menghala ke aplikasi LoopBack dalam mod produksi:
- Nama: Contoh
Laman Produksi LoopBack Pertama Saya
- Domain: Contoh
servbay-loopback-prod.servbay.demo
- Jenis Laman: Pilih
Proksi Terbalik (Reverse Proxy)
- IP: Masukkan
127.0.0.1
- Port: Masukkan
8586
(port aplikasi mod produksi)
Simpan dan aplikasi perubahan.
- Nama: Contoh
Akses Aplikasi Produksi
Buka pelayar web dan lawati domain produksi anda:
https://servbay-loopback-prod.servbay.demo/ping
untuk melihat aplikasi berjalan dalam mod produksi. SSL turut disokong secara automatik oleh ServBay.
Menyambung ke Pangkalan Data
Kerangka LoopBack menyokong sambungan ke pelbagai jenis pangkalan data melalui adapter sumber data. ServBay membekalkan pakej MySQL, MariaDB, PostgreSQL, MongoDB, dan Redis — anda boleh mulakan servis pangkalan data ini dengan mudah dalam ServBay dan konfigurasikan sambungan di projek LoopBack anda.
Berikut adalah contoh konfigurasi untuk beberapa pangkalan data yang biasa digunakan di ServBay. Sila ubah suai mengikut keperluan sebenar.
Peringatan Penting: Nama pengguna dan kata laluan dalam contoh konfigurasi ialah placeholder. Jangan lupa gantikan dengan kata laluan sebenar untuk pengguna root atau akaun lain yang anda tetapkan dalam ServBay. Anda boleh urus pengguna dan kata laluan pangkalan data dari panel kawalan ServBay.
Sambungan ke MongoDB
Pastikan anda telah pasang dan mulakan MongoDB di ServBay. Pasang adapter MongoDB untuk LoopBack:
bashnpm install --save @loopback/connector-mongodb
1Konfigurasikan sumber data dalam projek (biasanya di
src/datasources/mongodb.datasource.ts
atau fail serupa):typescript// src/datasources/mongodb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mongodb', connector: 'mongodb', // Secara lalai, ServBay MongoDB berjalan di localhost:27017 url: 'mongodb://localhost:27017/servbay-loopback-app', // Gantikan dengan nama pangkalan data anda host: 'localhost', port: 27017, user: '', // Jika ada pengesahan pengguna, masukkan nama pengguna di sini password: '', // Jika ada pengesahan pengguna, masukkan kata laluan di sini database: 'servbay-loopback-app', // Gantikan dengan nama pangkalan data anda // Konfigurasi tambahan... }; export class MongodbDataSource extends juggler.DataSource { static dataSourceName = 'mongodb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Sambungan ke Redis
Pastikan anda telah pasang dan mulakan Redis di ServBay. Pasang adapter Redis untuk LoopBack (Perhatian: LoopBack rasmi tiada
@loopback/connector-redis
, biasa digunakan ialah adapter komunitiloopback-connector-redis
atau guna modulredis
bersama konsep servis LoopBack):bashnpm install --save loopback-connector-redis # atau mana-mana pakej Redis yang serasi
1Kemudian konfigurasi sumber data (contoh dengan gaya
loopback-connector-redis
):typescript// src/datasources/redis.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'redis', connector: 'redis', // ServBay Redis berjalan di localhost:6379 secara lalai url: 'redis://localhost:6379', // Konfigurasi tambahan... }; export class RedisDataSource extends juggler.DataSource { static dataSourceName = 'redis'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17Perhatian: LoopBack 4 menggunakan sumber data berbeza berbanding LoopBack 3. Contoh di atas ialah gaya ringkas LoopBack 3; dalam LoopBack 4, disarankan guna decorator
@datasource
dari@loopback/repository
dan konfigurasi moden. Sila rujuk dokumentasi rasmi LoopBack 4 untuk amalan terbaru. Namun, parameter sepertihost
,port
,user
,password
,database
tetap digunakan secara am.Sambungan ke MariaDB (atau MySQL)
Pastikan anda telah pasang dan mulakan MariaDB atau MySQL di ServBay. ServBay menyokong kedua-dua pangkalan data ini. Connector LoopBack untuk MySQL juga biasanya serasi dengan MariaDB. Pasang connector MySQL untuk LoopBack:
bashnpm install --save @loopback/connector-mysql
1Kemudian konfigurasi sumber data:
typescript// src/datasources/mariadb.datasource.ts atau mysql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mariadb', // atau 'mysql' connector: 'mysql', // guna adapter mysql // url: '', // boleh guna format url atau tetapkan host, port, dan database secara berasingan host: 'localhost', // Pangkalan data ServBay berjalan di localhost port: 3306, // Port lalai MariaDB/MySQL user: 'root', // Pengguna lalai biasanya 'root' password: 'password', // << Gantikan dengan kata laluan sebenar anda dari ServBay >> database: 'servbay_loopback_app', // Gantikan dengan nama pangkalan data anda // Konfigurasi tambahan... }; export class MariaDbDataSource extends juggler.DataSource { static dataSourceName = 'mariadb'; // atau 'mysql' constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Nota:
password: 'password'
hanyalah placeholder. Rujuk dan gunakan kata laluan root sebenar di panel pengurusan ServBay untuk MariaDB/MySQL anda.Sambungan ke PostgreSQL
Pastikan anda telah pasang dan mulakan PostgreSQL di ServBay. Pasang connector PostgreSQL untuk LoopBack:
bashnpm install --save @loopback/connector-postgresql
1Kemudian konfigurasi sumber data:
typescript// src/datasources/postgresql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'postgresql', connector: 'postgresql', // url: '', // boleh guna format url atau tetapkan host, port, dan database secara berasingan host: 'localhost', // ServBay PostgreSQL berjalan di localhost port: 5432, // Port lalai PostgreSQL user: 'user', // << Gantikan dengan nama pengguna dari panel ServBay >> password: 'password', // << Gantikan dengan kata laluan sebenar >> database: 'servbay_loopback_app', // Gantikan dengan nama pangkalan data anda // Konfigurasi tambahan... }; export class PostgresqlDataSource extends juggler.DataSource { static dataSourceName = 'postgresql'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Nota:
user: 'user'
danpassword: 'password'
hanyalah placeholder. Sila gunakan nama pengguna dan kata laluan sebenar PostgreSQL yang ditetapkan dalam panel pengurusan ServBay.
Rumusan
Dengan mengikuti langkah-langkah di atas, anda telah berjaya membina, mengkonfigurasi, dan menjalankan projek LoopBack Node.js dalam persekitaran pembangunan tempatan ServBay. Anda juga telah mempelajari cara menggunakan fungsi laman web ServBay melalui proksi terbalik untuk mengakses aplikasi anda serta menghubungkan projek LoopBack ke pelbagai servis pangkalan data yang ditawarkan ServBay.
ServBay menyediakan persekitaran pembangunan tempatan yang stabil dan mudah untuk kerangka Node.js seperti LoopBack, dengan integrasi pelayan web, pangkalan data, dan runtime berbilang bahasa yang memudahkan aliran kerja pembangun. Manfaatkan pengurusan laman web, sokongan SSL, dan integrasi pangkalan data ServBay untuk mempercepatkan dan memperkukuh pembangunan serta pengujian tempatan anda.