UNPKG

learnyounode

Version:

Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.

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