作者:吳祐賓
上一節提到 Node.js 搭配 Express 就能很快速的製作做 RESTful API
服務,這次要來新增服務模組。
建立 servermethods.js 模組
打開上一節的專案,在 app 目錄中建立 servermethods.js,將以下程式碼貼上去:
// servermethods.js
function echoString(aValue){
return aValue;
}
function reverseString(aValue){
return aValue.split("").reverse().join("");
}
module.exports = {
echoString,
reverseString
}
這是一個簡單的 Node.js 模組,檔名為 servermethods.js
。以下是程式解說:
模組導出:
module.exports
這一行將兩個函式 echoString
和 reverseString
導出,讓其他檔案可以引入這個模組並使用這兩個函式。
echoString
函式:
這個函式接收一個參數 aValue
,然後直接將它回傳。換句話說,這個函式的作用是傳回接收到的值,不作任何處理。
reverseString
函式:
這個函式也接收一個參數 aValue
,但是它做了一些處理。首先,它使用 split("")
方法將接收到的字串轉換為一個字元陣列。接著,使用 reverse()
方法將這個字元陣列反轉。最後,使用 join("")
方法將反轉後的字元陣列重新組合成字串。簡單來說,這個函式的目的是將傳入的字串進行反轉操作,並將結果回傳。
這個模組提供了兩個簡單的函數,一個是直接回傳傳入值的 echoString
函數,另一個是將傳入字串進行反轉的 reverseString
函數。這樣的模組可以在其他地方引入,並使用這兩個函式進行相應的操作。
建立使用 serverMethods 的路由
打開 server.js 檔案,將以下程式貼到裡面。
// 引入 servermethods 模組
const serverMethods = require('./app/servermethods');
//...
app.get('/echo_string/:value', (req, res) => {
res.json(serverMethods.echoString(req.params.value));
});
app.get('/reverse_string/:value', (req, res) => {
res.json(serverMethods.reverseString(req.params.value));
});
這段程式碼繼承上一節 server.js,透過 Express 框架實現了兩個 API 端點。以下是程式解說:
引入模組:
使用 require('./app/servermethods')
引入了名為 servermethods
的模組。該模組包含了兩個函式,分別為 echoString
和 reverseString
。
路由設定:
使用 Express 框架的 app.get
方法設定了二個不同的路由:
/echo_string/:value
路由:當收到這個路由的 HTTP GET 請求時,會呼叫 serverMethods.echoString
函式,將請求參數中的值傳入函式,然後將函式的結果以 JSON 格式回傳給客戶端。
/reverse_string/:value
路由:當這個路由收到 HTTP GET 請求時,會呼叫 serverMethods.reverseString
函式,將請求參數中的值傳入函式,然後以 JSON 格式回傳函式的結果。
回應結果:
路由處理都使用 res.json
方法回傳 JSON 格式的結果給客戶端,serverMethods.echoString
和 serverMethods.reverseString
這兩個函式的結果會被包裝在一個具有 result
屬性的 JSON 物件中。
簡單來說,我們做了兩個簡單的 API 端點,一個是回傳接收到的字串,另一個是回傳反轉後的字串。這些 API 可以在應用程式中被其他端點或前端應用程式所使用。
最後在 Terminal 輸入 "node server.js" 啟動 RESTful 服務,使用
- http://localhost:3000/echo_string/A B C
- http://localhost:3000/reverse_string/A B C
就可以看到類似下圖的結果。
總結
這個範例主要是將之前常看到的啟動範例復刻到 Express 上,實作上也相當簡單,servermethods.js 提供 echoString、reverseString 兩個文字處理函式;server.js 增加兩個路由來呼叫 servermethods.js 的函式並回傳結果。此範本很適合未來新專案的起手式。
和你分享。
See also
首圖由
Gerd Altmann在
Pixabay上發布
沒有留言:
張貼留言