Escribe un servidor de HTTP que sirva datos en formato JSON cuando reciba una petición GET con la ruta (endpoint) '/api/parsetime'. Asume que la petición tiene un parámetro 'iso' cuyo valor es un fecha hora en formato ISO.
Por ejemplo:
/api/parsetime?iso=2013-08-10T12:10:15.474Z
La respuesta JSON debe contener únicamente los propiedades 'hour', 'minute' y 'second' correspondientes a la fecha recibida. Ejemplo:
{
"hour": 14,
"minute": 23,
"second": 15
}
Luego, agrega un segundo endpoint con ruta '/api/unixtime' que reciba los mismos parámetros que la anterior pero que devuelva la fecha en formato UNIX, por ejemplo:
{
"unixtime": 1376136615474
}
El servidor deberá escuchar en un puerto cuyo número será el primer argumento del programa.
El objeto request
de HTTP tiene un atributo url
que deberás usar para distinguir las "routes" de cada endpoint.
Puedes parsear la URL y los parámetros usando el módulo url
de Node, url.parse(request.url, true)
parsea y devuelve un objeto con atributos pertinentes.
Puedes probarlo en la línea de comandos escribiendo:
$ node -pe "require('url').parse('/test?q=1', true)"
La documentación del módulo url
puede verse en:
/node_apidoc/url.html
Para enviar la respuesta del servidor en formato JSON puedes usar el método JSON.stringify()
.
Asimismo convendría que en la misma le agregaras un encabezado 'Content-Type' adecuado, por ejemplo:
res.writeHead(200, { 'Content-Type': 'application/json' })
Por último ten en cuenta el objeto JavaScript Date
que permite imprimir fechas en formato ISO format, por ejemplo: new Date().toISOString()
. También parsea dicho formato cuando se lo pasa por parámetro al constructor Date
. Revisa también el uso de Date#getTime()
.