今天要開始實際動手試試 Moleculer ,首先從手動建立簡單的服務開始,再透過 CLI 工具建立一個基本的範例。
要使用基本的 moleculer 框架,可以透過 npm 安裝:
npm install moleculer --save
以下是官方提供的基本範例,用來計算兩數相加的結果,程式碼主要分為三個部分:
math.service.js
const { ServiceBroker } = require("moleculer");
// 建立一個 ServiceBroker
const broker = new ServiceBroker();
// 定義服務
broker.createService({
name: "math",
actions: {
add(ctx) {
return Number(ctx.params.a) + Number(ctx.params.b);
}
}
});
// 啟動 broker
broker.start()
// 呼叫服務
.then(() => broker.call("math.add", { a: 5, b: 3 }))
// 列出響應
.then(res => console.log("5 + 3 =", res))
.catch(err => console.error(`Error occured! ${err.message}`));
執行後你會看到一些 Broker 執行及啟動的訊息,其中也會印出以下的結果:
5 + 3 = 8
Moleculer 也提供官方 CLI 工具,可快速建立微服務專案,預設範例包含 API 閘道器,可以透過 REST API 進行呼叫。
npm i moleculer-cli -g
moleculer init project moleculer-demo
執行 CLI 程式的過程中,會請您根據需求輸入一些設定,如以下結果所示:
❯ moleculer init project moleculer-demo
Template repo: moleculerjs/moleculer-template-project
Downloading template...
? Add API Gateway (moleculer-web) service? Yes
? Would you like to communicate with other nodes? Yes
? Select a transporter NATS (recommended)
? Would you like to use cache? No
? Add DB sample service? Yes
? Would you like to enable metrics? Yes
? Would you like to enable tracing? Yes
? Add Docker & Kubernetes sample files? Yes
? Use ESLint to lint your code? Yes
Create 'moleculer-demo' folder...
? Would you like to run 'npm install'? Yes
建立完成後,鍵入以下指令並執行,即可在 Port 3000
啟動微服務:
npm run dev
欲測試是否正常執行,可以打開瀏覽器鍵入以下網址,即可看到歡迎頁面如下圖:
http://localhost:3000/
Fig. 1. Moleculer 歡迎頁面
[1] Usage, https://moleculer.services/docs/0.14/usage.html