learnyounode
Version:
Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.
70 lines (50 loc) • 2.28 kB
Markdown
É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 :
```json
{
"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 :
```json
{ "unixtime": 1376136615474 }
```
Votre serveur devra écouter sur un port dont le numéro vous sera fourni en
premier argument de la ligne de commande.
----------------------------------------------------------------------
## CONSEILS
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 `new URL(request.url)` 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 :
```sh
$ node -pe "new URL('/test?q=1', 'http://example.com')"
```
La documentation pour le module `url` peut être consultée hors-ligne à
l’adresse suivante :
{rootdir:/docs-nodejs/url.html}
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 :
```js
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.