在 ServBay 中配置與運行 LoopBack 專案 
什麼是 LoopBack? 
LoopBack 是 IBM 所開發的一個高度可擴展的開源 Node.js 框架,專為快速構建 API 與微服務而設計。它採用模型驅動開發(MDD)方式,協助開發者高效定義資料模型,自動產生功能強大的 RESTful API。LoopBack 框架內建豐富特性,包括資料源連接、用戶驗證與授權、API 瀏覽工具等並支援多種資料庫與協議。
LoopBack 的關鍵特色與優勢 
- 模型驅動開發 (MDD):以直觀方式定義資料模型,框架自動產生相應 API 端點與資料驗證邏輯。
- 多資料源支援:輕鬆連接主流資料庫(如 MongoDB、MySQL、PostgreSQL、MariaDB 等)、RESTful 與 SOAP 等服務。
- 強大 CLI 工具:LoopBack CLI(命令列工具)提供豐富指令,有效簡化專案初始化、模型定義與資料源配置等開發工作。
- 模組化與擴展性:架構設計靈活,支援自訂模組與第三方元件,方便整合各類服務、因應多元商業場景。
- 內建安全機制:內建即用的用戶驗證(Authentication)與授權(Authorization),協助快速建構安全的 API。
借助 LoopBack,開發者能大幅提升 Web 應用後端及 API 的開發效率,打造高效能且易維護的應用程式。
使用 ServBay 建立並運行 LoopBack 專案 
本文將引導你善用 ServBay 內建之 Node.js 執行環境來快速建立並執行 LoopBack 專案。我們將運用 ServBay 的「網站」功能,配置本機 Web 伺服器,並利用反向代理技術,將外部請求導向 LoopBack 應用運行的埠號,快速實現本機存取與開發除錯。
建立 LoopBack 專案 
- 安裝 LoopBack CLI - 開始前,請先確保你已在 ServBay 安裝並啟用了 Node.js 套件。然後打開終端機,使用 npm 全域安裝 LoopBack CLI 工具: bash- npm install -g @loopback/cli1
- 初始化專案 - 切換至 ServBay 建議的網站根目錄 - /Applications/ServBay/www,利用 LoopBack CLI 初始化新專案。專案名稱建議使用小寫字母與連字號,例如- servbay-loopback-app:bash- cd /Applications/ServBay/www lb4 app servbay-loopback-app1
 2- CLI 會引導你完成專案設定,包括特性選擇(如 REST API、序列化、驗證等)與結構配置,請依需求進行選取。 
- 安裝專案依賴套件 - 進入新專案資料夾並安裝所需的 Node.js 相依套件: bash- cd servbay-loopback-app npm install1
 2
修改 LoopBack 專案回應內容(非必要步驟) 
為了示範如何透過 ServBay 存取應用,我們能夠修改預設的 /ping 接口,讓它回傳自訂訊息。
- 修改 - src/controllers/ping.controller.ts檔案- 尋找專案內之 - src/controllers/ping.controller.ts,將檔案內容修改如下,讓- /pingAPI 回傳字串 "Hello ServBay!":typescript- import {get} from '@loopback/rest'; export class PingController { constructor() {} @get('/ping') ping(): string { // 修改回傳內容為 "Hello ServBay!" return 'Hello ServBay!'; } }1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
以開發模式啟動專案 
開發階段你通常會啟動 LoopBack 內建開發伺服器,以利快速修正與測試。我們將透過 ServBay 反向代理瀏覽這個開發伺服器。
- 啟動開發伺服器 - 在專案根目錄下於終端機啟動 LoopBack 應用,預設會監聽指定埠口。你可設定 - PORT來指定埠號,例如- 8585:bash- cd /Applications/ServBay/www/servbay-loopback-app PORT=8585 npm start1
 2- 啟動後,你會在終端看到類似 "Server is running at http://[::1]:8585" 的提示。 
- 配置 ServBay 網站(反向代理) - 進入 ServBay 控制面板,切換到「網站」功能分頁。點擊新增,建立反向代理網站,將外部域名與埠號指向 LoopBack 於內部監聽的位置: - 名稱 (Name):如 My first LoopBack dev site(用於 ServBay 內識別)
- 網域 (Domain):如 servbay-loopback-dev.servbay.demo(你的本地測試網域,可用瀏覽器存取)
- 網站類型 (Type):選擇 反向代理 (Reverse Proxy)
- IP 位址 (IP Address):填入 127.0.0.1(LoopBack 執行於本機)
- 埠號 (Port):填入 8585(LoopBack 監聽之埠號)
 - 設定完成後請儲存並套用。ServBay 會自動設定本機 DNS(修改 - /etc/hosts或使用 ServBay Helper Tool)以及 Web 伺服器(Caddy 或 Nginx),讓你可經由所設定的網域快速存取。- 有關如何在 ServBay 新增反向代理網站,請參考:添加 Node.js 開發網站。 
- 名稱 (Name):如 
- 訪問開發模式應用 - 開啟瀏覽器,造訪你設定的網域與接口路徑,例如 - https://servbay-loopback-dev.servbay.demo/ping。- ServBay 預設支援本地網站自動配置 SSL 憑證(可用 ServBay User CA 或 ServBay Public CA),你可直接用 HTTPS 安全訪問本地開發網站,這可模擬正式環境行為,有助於提前發現 SSL 相關潛在問題。更多 ServBay SSL 功能說明請參見:使用 SSL 保護網站。 
正式環境部署(可選步驟) 
當你的 LoopBack 專案準備好部署時,通常需以 production 模式啟動。此模式下性能更佳且除錯資訊最少。
- 啟動正式(production)伺服器 - 在專案目錄下於終端機設定 - NODE_ENV為- production並指定新埠號(例如- 8586):bash- cd /Applications/ServBay/www/servbay-loopback-app PORT=8586 NODE_ENV=production npm start1
 2
- 配置 ServBay 網站(反向代理) - 回到 ServBay 控制面板網站分頁,新增或修改一個反向代理網站,指向 production 模式下的 LoopBack 應用: - 名稱 (Name):如 My first LoopBack production site
- 網域 (Domain):如 servbay-loopback-prod.servbay.demo
- 網站類型 (Type):選 反向代理 (Reverse Proxy)
- IP 位址 (IP Address):127.0.0.1
- 埠號 (Port):8586(production mode 監聽的埠號)
 - 存檔並應用更動。 
- 名稱 (Name):如 
- 訪問正式環境應用 - 用瀏覽器造訪正式環境網域,例如 - https://servbay-loopback-prod.servbay.demo/ping,檢查 production 運作情況。ServBay 同步提供 HTTPS 支援。
資料庫連線設定 
LoopBack 框架透過資料源連接器支援多種資料庫。ServBay 提供 MySQL、MariaDB、PostgreSQL、MongoDB 與 Redis 等眾多資料庫套件,讓你可輕鬆於 ServBay 啟動並於 LoopBack 專案中設置連接。
以下為連接 ServBay 常見資料庫的配置範例。請依實際需求調整設定。
重要提示: 範例中的資料庫用戶名與密碼僅作為占位。實際操作時,請務必使用你於 ServBay 為相應資料庫設定的 root 或其他帳號密碼,可透過 ServBay 控制面板管理帳戶資訊。
- 連接 MongoDB - 確認 ServBay 已安裝啟動 MongoDB 套件。 安裝 LoopBack 的 MongoDB 連接器: bash- npm install --save @loopback/connector-mongodb1- 然後在專案中配置資料源(通常為 - src/datasources/mongodb.datasource.ts或類似檔案):typescript- // src/datasources/mongodb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mongodb', connector: 'mongodb', // ServBay MongoDB 預設運行在 localhost:27017 url: 'mongodb://localhost:27017/servbay-loopback-app', // 請替換你的資料庫名稱 host: 'localhost', port: 27017, user: '', // 若設定驗證請填入帳號 password: '', // 若設定驗證請填入密碼 database: 'servbay-loopback-app', // 替換你的資料庫名稱 // 其他可選設定... }; 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
 22
- 連接 Redis - 請確保 ServBay 已安裝並啟動 Redis 套件。 安裝 LoopBack 的 Redis 連接器(注意:LoopBack官方未直接提供 - @loopback/connector-redis,通常採用社群方案如- loopback-connector-redis或 Node.js 的- redis套件結合服務實現):bash- npm install --save loopback-connector-redis # 或其他相容 Redis 函式庫1- 接著於專案中配置資料源(以下依 - loopback-connector-redis格式示範):typescript- // src/datasources/redis.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'redis', connector: 'redis', // ServBay Redis 預設運行在 localhost:6379 url: 'redis://localhost:6379', // 其他可選設定... }; 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
 17- 注意:LoopBack 4 的資料源用法較 LoopBack 3 不同,上例為 LoopBack 3 連接器寫法的簡化說明。LoopBack 4 正式建議用 - @loopback/repository搭配- @datasource裝飾器及現代化配置方式,詳情請參考官方文件。連線參數如- host、- port、- user、- password、- database則通用不變。
- 連接 MariaDB(或 MySQL) - 請確認 ServBay 已啟用 MariaDB 或 MySQL 套件。LoopBack 的 MySQL 連接器同時支援 MariaDB。 安裝 LoopBack 的 MySQL 連接器: bash- npm install --save @loopback/connector-mysql1- 然後於專案資料夾中設定資料源: typescript- // src/datasources/mariadb.datasource.ts 或 mysql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mariadb', // 或 'mysql' connector: 'mysql', // 使用 mysql 連接器 // url: '', // 可用 url 方式,或分別配置 host/port/database host: 'localhost', // ServBay 資料庫預設運行於本機 port: 3306, // MariaDB/MySQL 預設埠口 user: 'root', // ServBay MariaDB/MySQL 預設帳號常為 root password: 'password', // << 請替換為 ServBay 實際設定的資料庫密碼 >> database: 'servbay_loopback_app', // 替換你的資料庫名稱 // 其他可選設定... }; export class MariaDbDataSource extends juggler.DataSource { static dataSourceName = 'mariadb'; // 或 'mysql' constructor() { super(config); } }1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21- 請注意:本例 - password: 'password'僅為範例占位,請在 ServBay 資料庫管理介面查閱/設定你的 MariaDB/MySQL root 密碼並填入。
- 連接 PostgreSQL - 請確保 ServBay 已安裝並啟動 PostgreSQL 套件。 安裝 LoopBack 的 PostgreSQL 連接器: bash- npm install --save @loopback/connector-postgresql1- 並於專案設定資料源: typescript- // src/datasources/postgresql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'postgresql', connector: 'postgresql', // url: '', // 可用 url 方式,或分別設定 host、port、database host: 'localhost', // ServBay PostgreSQL 預設為本機 port: 5432, // PostgreSQL 預設埠 user: 'user', // << 請改為 ServBay 內設定的 PostgreSQL 用戶名稱 >> password: 'password', // << 請改為 ServBay 內設定的密碼 >> database: 'servbay_loopback_app', // 替換你的資料庫名稱 // 其他可選設定... }; 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
 21- 提醒:上述 - user: 'user'- password: 'password'為占位示意,請在 ServBay 控制面板查找或建立 PostgreSQL 用戶並填入真實資訊。
總結 
依照上述步驟,你已成功在 ServBay 本機開發環境建立、配置並運作了一個 LoopBack Node.js 專案。你已學會如何運用 ServBay「網站」功能經反向代理存取應用服務,以及在 LoopBack 專案內設定連線至各類由 ServBay 提供的資料庫服務。
ServBay 為 LoopBack 等 Node.js 框架提供穩定便利的本機開發環境,整合 Web 伺服器、資料庫及多語言執行環境,大大簡化開發流程。透過 ServBay 網站管理、SSL 支援與資料庫整合,能更高效且安全地進行本地開發測試。
