É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.