創建並運行 LoopBack 專案
什麼是 LoopBack?
LoopBack 是一個由 IBM 開發的高度可擴展的 Node.js 框架,用於構建 API 和微服務。它提供了強大的工具和特性,使得開發者可以輕鬆創建、測試和部署 API。LoopBack 具有模型驅動的開發(MDD)方式,可以快速生成 RESTful API,並且支持多種數據庫連接。
LoopBack 的主要特性和優勢
- 模型驅動開發:通過定義模型,自動生成 RESTful API。
- 多數據庫支持:支持多種數據庫,如 MongoDB、MySQL、PostgreSQL、MariaDB 等。
- 強大的 CLI 工具:LoopBack CLI 提供了豐富的命令,簡化了專案的創建和管理。
- 豐富的插件和擴展:擁有豐富的插件和擴展,可以輕鬆整合第三方服務和庫。
- 內置用戶認證和授權:提供了強大的用戶認證和授權機制。
使用 LoopBack,可以幫助開發者快速構建高性能和可擴展的 Web 應用和 API。
使用 ServBay 創建並運行 LoopBack 專案
在這篇文章中,我們將使用 ServBay 提供的 Node.js 環境來創建並運行一個 LoopBack 專案。我們將使用 ServBay 的「主機」功能來設置 Web 伺服器,並通過反向代理來實現專案的訪問。
創建 LoopBack 專案
安裝 LoopBack CLI
首先,確保您已經安裝了 ServBay 提供的 Node.js 環境。然後,使用以下命令全局安裝 LoopBack CLI:
bashnpm install -g @loopback/cli
1初始化專案
在 ServBay 建議的網站根目錄
/Applications/ServBay/www
中創建一個新的 LoopBack 專案:bashcd /Applications/ServBay/www lb4 app servbay-loopback-app
1
2按照提示輸入專案名稱(建議命名為
servbay-loopback-app
),並根據需要選擇其他選項。安裝依賴
進入專案目錄並安裝依賴:
bashcd servbay-loopback-app npm install
1
2
修改 LoopBack 專案輸出內容
修改
src/controllers/ping.controller.ts
文件打開
src/controllers/ping.controller.ts
文件,修改內容使網頁輸出 "Hello ServBay!":typescriptimport {get} from '@loopback/rest'; export class PingController { constructor() {} @get('/ping') ping(): string { return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
進入開發模式
運行開發伺服器
啟動開發伺服器並指定端口(例如:8585):
bashPORT=8585 npm start
1這將會在本地啟動一個開發伺服器,並暴露端口 8585。
配置 ServBay 主機反向代理
使用 ServBay 的「主機」功能,通過反向代理來訪問開發伺服器。在 ServBay 的「主機」設置中,添加一個新的反向代理:
- 名字:
My first LoopBack dev site
- 域名:
servbay-loopback-test.dev
- 主機類型:
反向代理
- IP:
127.0.0.1
- 端口:
8585
詳細設置步驟請參考添加Nodejs開發的網站。
- 名字:
訪問開發模式
打開瀏覽器,訪問
https://servbay-loopback-test.dev/ping
,實時查看專案。由於 ServBay 支持自定義域名以及免費的 SSL 證書,您將享受到更高的安全性。
部署生產版本
準備生產環境
確保您的專案在生產環境中可以正常運行。通常,LoopBack 專案不需要特別的構建步驟,但您可能需要設置一些環境變量或進行其他配置。
運行生產伺服器
啟動生產伺服器並指定端口(例如:8586):
bashPORT=8586 NODE_ENV=production npm start
1配置 ServBay 主機反向代理
使用 ServBay 的「主機」功能,通過反向代理來訪問生產伺服器。在 ServBay 的「主機」設置中,添加一個新的反向代理:
- 名字:
My first LoopBack production site
- 域名:
servbay-loopback-test.prod
- 主機類型:
反向代理
- IP:
127.0.0.1
- 端口:
8586
- 名字:
訪問生產模式
打開瀏覽器,訪問
https://servbay-loopback-test.prod
,查看生產版本。通過 ServBay 的自定義域名和免費的 SSL 證書,您的網站將具有更高的安全性和可信度。
數據庫連接
ServBay 提供了 Redis、MariaDB、PostgreSQL 和 MongoDB 數據庫支持。以下是如何連接這些數據庫的示例。
連接 MongoDB
安裝
@loopback/connector-mongodb
:bashnpm install --save @loopback/connector-mongodb
1然後在專案中配置數據源:
typescript// src/datasources/mongodb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mongodb', connector: 'mongodb', url: 'mongodb://localhost/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連接 Redis
安裝
loopback-connector-redis
:bashnpm install --save loopback-connector-redis
1然後在專案中配置數據源:
typescript// src/datasources/redis.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'redis', connector: 'redis', 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連接 MariaDB
安裝
@loopback/connector-mysql
:bashnpm install --save @loopback/connector-mysql
1然後在專案中配置數據源:
typescript// src/datasources/mariadb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mariadb', connector: 'mysql', url: '', host: 'localhost', port: 3306, user: 'root', password: 'password', database: 'servbay_loopback_app', }; export class MariaDbDataSource extends juggler.DataSource { static dataSourceName = 'mariadb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20連接 PostgreSQL
安裝
@loopback/connector-postgresql
:bashnpm install --save @loopback/connector-postgresql
1然後在專案中配置數據源:
typescript// src/datasources/postgresql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'postgresql', connector: 'postgresql', url: '', host: 'localhost', port: 5432, user: 'user', password: 'password', 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
通過以上步驟,您成功創建並運行了一個 LoopBack 專案,並使用 ServBay 提供的功能來管理和訪問您的專案,同時連接了多種數據庫。