2023/12/11

Express 建立 echoString 和 reverseString 方法

作者:吳祐賓






上一節提到 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。以下是程式解說:

  1. 模組導出:
    module.exports 這一行將兩個函式 echoStringreverseString 導出,讓其他檔案可以引入這個模組並使用這兩個函式。

  2. echoString 函式:
    這個函式接收一個參數 aValue,然後直接將它回傳。換句話說,這個函式的作用是傳回接收到的值,不作任何處理。

  3. 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 端點。以下是程式解說:

  1. 引入模組:
    使用 require('./app/servermethods') 引入了名為 servermethods 的模組。該模組包含了兩個函式,分別為 echoStringreverseString

  2. 路由設定:
    使用 Express 框架的 app.get 方法設定了二個不同的路由:

    • /echo_string/:value 路由:當收到這個路由的 HTTP GET 請求時,會呼叫 serverMethods.echoString 函式,將請求參數中的值傳入函式,然後將函式的結果以 JSON 格式回傳給客戶端。

    • /reverse_string/:value 路由:當這個路由收到 HTTP GET 請求時,會呼叫 serverMethods.reverseString 函式,將請求參數中的值傳入函式,然後以 JSON 格式回傳函式的結果。

  3. 回應結果:
    路由處理都使用 res.json 方法回傳 JSON 格式的結果給客戶端,serverMethods.echoStringserverMethods.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 AltmannPixabay上發布

沒有留言:

張貼留言