jollen.org

Jollen 的 Blog
Jollen's email: jollen # jollen.org
more:  Jollen's Training

Node.js 入門, #5:解析 Query String

.作者:jollen/
.日期:July 23, 2014 9:11 PM


本文章採用 Markdown 語法撰寫(why?),若無法閱讀內文,請點擊這裡

解析 Query String

Client 端呼叫 Server 所提供的 Web Service API。所以,現在的關鍵是如何解析 Query String。如圖 2.2,Node.js 使用 querystring 模組來解析 Query String。先將 querystring 模組匯入,接著呼叫 parse() 函數:

var querystring = require('querystring'); 
var parsedstring = querystring.parse(“m=helll&u=jollen”); 

解析後的結果存放於 parsedstring 物件,回傳結果:

{ m: 'hello', u: 'jollen' } 

parse() 函數有三個參數:

querystring.parse(str, [sep], [eq])
  • str 是 Query String
  • sep 是「Separator」,也就是字串的分隔字元,預設是 '$',通常不做變數
  • eq 則是字串與值的對應字元,預設是 '=',通常不做變數

了解如何解析 Query String 後,就可以開始進行後續的工程了。再次修改 requestHandlers.js,如下:

// 05-query-string/requestHandlers.js
 1 var querystring = require('querystring'); 
 2 
 3 /**
 4  * Global variables
 5  */
 6 var history = [ ];
 7 
 8 function start(response, query) {
 9     console.log("Handler 'start' is started.");
10     console.log("Query string is: " + query);
11 }
12 
13 function send(response, query) {
14     console.log("Handler 'send' is started.");
15     console.log("Query string is: " + query);
16 
17     var parsedstring = querystring.parse(query); 
18 
19     var obj = {
20         message: parsedstring.m,
21         username: parsedstring.u,
22         timestamp: (new Date()).getTime()
23     };
24 
25     history.push(obj);
26 
27     //////// DEBUG ////////
28     for (var i = 0; i < history.length; i++) {
29         console.log("["+i+"]: " + history[i].message);
30     }
31 }
32 
33 exports.start = start;
34 exports.send = send;

這裡利用一個全域陣列 history 來儲存訊息。將收到的訊息封裝成物件後, 再使用標準的陣列操作將物件放到陣列裡。另外,我們也將一個時間記號(Timestamp)一併封裝至該物件,用來紀錄接收到訊息的時間。

結論

到這裡完成了 Node.js 入門的學習:

  • 學會撰寫第一個 Node.js 程式
  • 學會啟動 HTTP Server
  • 了解並實作 URL Routing
  • 學會解析 Pathname 與 Query String

Tags:

純手工打造說明:技術專欄文章為 Jollen 原創,內容皆為人工撰寫,無 AI 生成。轉載請註明出處與作者,並全文引用。轉載時請在文章開頭或結尾明顯處註明「本文出處:https://www.jollen.org,已取得原作者同意並授權使用。」
訂閱電子報:不定期 Jollen's Blog 精選文章隨 Moko365 電子報寄送;請透過 Moko365 電子報訂閱(可隨時取消)。

Copyright(c) 2001–2014 www.jollen.org. All rights reserved.
Last update: 2026-07-22