learnyounode
Version:
Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.
50 lines (32 loc) • 2.94 kB
Markdown
Реализуйте HTTP **сервер**, который возвращает JSON объект на GET запрос по адресу `/api/parsetime`. Запрос должен содержать в строке запроса ключ 'iso' и время в ISO-формате в качестве значения.
Например:
/api/parsetime?iso=2013-08-10T12:10:15.474Z
JSON объект в ответе должен содержать только следующие свойства: 'hour', 'minute' и 'second'. Пример ответа:
```json
{
"hour": 14,
"minute": 23,
"second": 15
}
```
Так же сервер должен обрабатывать запрос на '/api/unixtime', который содержит такую же строку запроса, но возвращает UNIX-время в миллисекундах (количество миллисекунд, прошедшее с 1 января 1970 00:00:00 UTC) в свойстве 'unixtime'. Пример ответа:
```json
{ "unixtime": 1376136615474 }
```
Ваш сервер должен слушать порт, который Вы получите в качестве первого аргумента командной строки.
----------------------------------------------------------------------
## ИНФОРМАЦИЯ
Объект `request` в HTTP сервере имеет свойство `url`, которое Вы должны использовать, для того чтобы *"направлять"* запросы к нужным обработчикам.
Вы можете парсить URL и строку запроса используя встроенный модуль `url`. `new URL(request.url)` пропарсит request.url и вернет объект с необходимыми свойствами.
Например, введите в командной строке:
```sh
$ node -pe "new URL('/test?q=1', 'http://example.com')"
```
Документацию для `url` Вы cможете получить, набрав в браузере:
{rootdir:/docs-nodejs/url.html}
Ответ сервера должен быть в формате строки JSON. Обратитесь к `JSON.stringify()` за дополнительной информацией.
Так же Вы должны быть добропорядочным жителем веба и ставить Content-Type правильно:
```js
res.writeHead(200, { 'Content-Type': 'application/json' })
```
Объект `Date` в JavaScript может возвращать время в ISO формате, например, `new Date().toISOString()`. Так же он может парсить этот формат, если получит строку со временем на вход в коструктор `Date`. `Date#getTime()` также может оказаться полезным.