撰寫一個 HTTP 伺服器 ,當伺服器收到路徑「/api/parsetime」的 GET 請求時,要回應 JSON 格式的資料。這個請求會包含一個 query , key 是「iso」,值是 ISO 格式的時間。
如下例:
/api/parsetime?iso=2013-08-10T12:10:15.474Z
回應的 JSON 應該只包含三個屬性:「hour」、「minute」及「second」。舉例來說:
{
"hour": 14,
"minute": 23,
"second": 15
}
您還要加入第二個可以接受相同 query ,但這次在「unixtime」屬性下回應 UNIX 時間格式(又稱為 epoch 或 POSIX 時間格式)的路徑「/api/unixtime」。
{ "unixtime": 1376136615474 }
您的伺服器應該持續監聽在第一個參數提供的 port 上。
來自 HTTP 伺服器的 request
物件會擁有一個 url
屬性,您可以使用這個屬性判斷請求究竟是針對哪個路徑。
您可以使用 Node 核心模組 url 來解析 query 和網址。 url.parse(request.url, true)
會解析 request.url 的內容,並提供您一個擁有好用屬性的物件。
舉例來說,在命令列中輸入:
$ node -pe "require('url').parse('/test?q=1', true)"
要閱讀 url
模組的文件,可以在瀏覽器中打開這個頁面:
Documentation on the url
module can be found by pointing your browser here:
/node_apidoc/url.html
您的回應應該是 JSON 格式。要了解更多資訊,可以參考 JSON.stringify()
。
您也應該做個網路上的好公民,回應 Content-Type 屬性:
res.writeHead(200, { 'Content-Type': 'application/json' })
Javascript 的 Date
物件可以用 ISO 格式顯示日期,如 new Date().toISOString()
。如果您把日期字串傳入 Date
物件,這個物件也可以用來解析時間格式。 Date.getTime()
也可以派上用場。