Écrivez un serveur HTTP qui sert des données JSON lorsqu’il reçoit une requête GET sur le chemin '/api/parsetime'. Vous pouvez supposer que la requête contiendra une query string avec la clé 'iso' et une valeur d’horodatage au format ISO.
Par exemple :
/api/parsetime?iso=2013-08-10T12:10:15.474Z
La réponse JSON devrait contenir uniquement les propriétés 'hour', 'minute' et 'second'. Par exemple :
{
"hour": 12,
"minute": 10,
"second": 15
}
Ajoutez un second point d’accès pour le chemin '/api/unixtime', qui accepte la même query string mais renvoie un horodatage UNIX basé sur l’époque, en millisecondes (le nombre de millisecondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC), comme valeur d’une propriété 'unixtime'. Par exemple :
{ "unixtime": 1376136615474 }
Votre serveur devra écouter sur un port dont le numéro vous sera fourni en premier argument de la ligne de commande.
L’objet request fourni par le serveur HTTP a une propriété url dont vous
aurez besoin pour « router » les requêtes vers le bon point d’accès.
Vous pouvez analyser l’URL et la query string en utilisant le module noyau
Node url. Un appel url.parse(request.url, true) analysera le contenu de
request.url et vous fournira un objet avec toutes les propriétés utiles.
Par exemple, sur votre invite de commande, tapez :
$ node -pe "require('url').parse('/test?q=1', true)"
La documentation pour le module url peut être consultée hors-ligne à
l’adresse suivante :
Votre réponse doit être un texte au format JSON. Jetez un œil à
JSON.stringify() pour de plus amples informations.
Soyez également un-e bon-ne citoyen-ne du web et définissez le
Content-Type correctement avant d’envoyer le corps de réponse :
res.writeHead(200, { 'Content-Type': 'application/json' });
L’objet Date en JavaScript peut afficher des dates au format ISO, par
exemple new Date().toISOString(). Il peut aussi les analyser à partir
de ce format grâce au constructeur Date. Vous trouverez aussi sûrement
Date#getTime() utile.