Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

L'essentiel de Node.js

Servir du JSON

Testez gratuitement nos 1343 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous pouvez utiliser votre serveur comme une API et servir des fichiers JSON. Cela vous sera utile dans les configurations où jQuery est utilisé pour le front.
08:02

Transcription

Bon alors je pense que vous avez bien compris le principe. Maintenant on va parler de json. Vous allez avoir assez souvent besoin de se servir de json, parce que vous avez peut-être avoir envie de développer une api. Allez savoir. Alors si vous avez besoin de faire ça, il va falloir un petit exemple. Je vais vous montrer comment on va se servir de json au travers de notre serveur http. Vous allez vous rendre sur le json generator. Je vous donne l’url qui se trouve ici. Vous pouvez même carrément récupérer ça, parce que c’est sauvegardé. Donc moi, c’est celui que je vais utiliser, mais vous pouvez en générer un tout simplement. L’idée ici c’est juste avoir un petit peu de json pour pouvoir travailler. D’accord, donc là on a des objets json qui sont déjà créés, c’est carrément une collection. Nous, on va maintenant travailler sur ces données-là, et on va donc créer un nouveau dossier qui va s’appeler Data, dans lequel on va stocker un fichier json. Donc on va créer simplement un fichier json. Donc on va l’appeler data.json. Et on va coller toute cette partie-là, donc ce json qui est assez épais. Alors, ce qui est intéressant avec ce json-là, c’est qu’on va avoir quand même pas mal d’informations déjà de base, et on va pouvoir donc travailler les requêtes et travailler les réponses, et avoir quelque chose de sympa à afficher. Pensez que c’est mieux d’avoir une collection. C’est pour ça qu’on part là-dessus parce que pour le coup, voilà, c’est une vraie collection avec les objets à l’intérieur. On va devoir, ça, l’ajouter. Dans un premier temps, on va le mettre dans une variable. Donc on va se faire une petite variable data, qui va être un require. Oui parce que require, ça peut tout récupérer. Ça fait un require tout simplement. Donc ça fa vaire un require de data, data.json. Donc ça, c’est nos données. Maintenant il va falloir les servir. Donc on va recommencer, http.createServer, façon classique. Donc on va mettre req et res, comme d’habitude. Et puis ici on va à l’intérieur se coder notre petit serveur. Comment ça va fonctionner quand on va avoir du json à servir ? Bon, c’est assez simple de servir du json. Il suffira donc de faire un res.writeHead, comme on a déjà fait. Et puis ici on va lui dire qu’on veut servir quoi ? On veut servir une 200. Et c’est quoi le ContentType ? Comme d’habitude, ContentType. Et bah, c’est du texte, et oui /json, tout simplement. Ça c’est bon, ça va fonctionner. Maintenant, vous pourrez vous dire : « bah, c’est facile », donc du coup alors on va faire un res.end, et puis on va simplement envoyer des datas dedans. On peut essayer, on va voir ce que ça donne. Donc on va faire ça comme ça. Ici, on va lancer notre serveur. Et ah, il n’est pas content, pourquoi ? Parce qu’on n’a pas fait la variable server. Alors ici, oui effectivement, il faut faire une variable server, voilà. Sinon, ça ne va pas démarrer. Donc on va relancer. Donc maintenant ça sert bien un contenu, donc ok. Ça devrait normalement tout le temps servir la même chose. On va aller voir ce qui se passe. Donc on va aller, hop, cliquer là-dessus. Et il nous dit que : « ah, c’est inaccessible. » Il n’y arrive pas, et regardez, il a même crashé. Il a crashé parce que, ah, si vous servez de l’information, ça doit être de la string, et là, en l’occurrence c’est pas de la string ce que vous avez récupéré. C'est des datas bruts et vous ne pouvez pas faire comme ça. Vous êtes obligé, quand c’est du json, de passer par l’objet json et de faire un stringify. Parce que sinon ça ne marchera pas. Il faut obligatoirement venir travailler les données et les stringifier. Alors, on va effacer, relancer, et retourner sur notre serveur. Effectivement, maintenant on se retrouve bien avec du json directement. Donc là c’est beaucoup mieux comme ça. Et on a donc servi du json. Ça c’est la façon la plus simple. Maintenant imaginons que j’ai envie de pouvoir avoir plusieurs urls. Donc vous vous souvenez comment on va traiter ça. On va traiter ça avec des if. Donc là on va faire un if de façon classique : if, et là, mon « req.url === / » bah je vais servir mon contenu classique. Voilà, celui-ci. Et sinon on va essayer de travailler quelque chose de sympa, c'est-à-dire pourquoi pas avoir un filtre sur les différentes informations. Qu’est-ce qu’on a dans nos datas ? Notamment on peut voir qu’effectivement, à un endroit on a un IsActive. Ce IsActive-là, on pourrait s’amuser à le travailler et puis avoir des urls particulières. Else if, et ici on va faire un req.url.match, oh vous le connaissez maintenant celui-là. Et là on va lui demander donc, Is-Active. Et on pourra lui dire que ça finit par ça, donc du coup on va servir quelque chose de particulier. Donc ça c’est directement le Else If qu’on va avoir ici. Et sinon Else, on n’oubliera pas, toujours de mettre une méthode classique, Alors, on veut plus faire un res.end juste comme ça, Not Found. Alors ici, comment on va faire ? On va se créer une fonction. Une fonction un petit peu plus bas, donc la fonction IsActive, et IsActive, qu’est-ce que ça va faire ? Ça va renvoyer une réponse en faisant un filtre. On va faire VarIsActive va être égal à quoi ? On a des datas, on peut utiliser Filter sur un tableau de data. Et on peut lui demander, Filter, de filtrer sur quelque chose, donc une fonction anonyme comme ça, tac, tout simplement, et puis on peut lui demander d’aller récupérer de l’information et de vérifier quelque chose. On va vérifier les différents items, et on va lui demander à l’intérieur, de faire un return, Item.IsActive, et on va faire === True. Comme ça si c’est bon, si c’est active, il ne renvoie que les Actives, sinon, bon bah il renverra tout, d’accord ? Maintenant le problème qu’on va avoir, c’est que ça il va bien falloir l’envoyer quelque part. Res.end, et puis c’est toujours pareil. On va récupérer tout ce processus-là, et json stringify data. Le souci qu’on va avoir ici, c’est que ça ne va pas fonctionner, pourquoi ? Parce que res, regardez, où est-ce qu’il est res ? Res il est à l’intérieur de l’exécution du serveur. Alors, si on veut le faire comme ça, il va falloir qu’on le mette en dehors. On va se prévoir res ici, et là on va lui dire que res = res. Alors, ce n’est pas top top de faire comme ça. Il vaut mieux ici qu’on ait un nom, par exemple global res, ce serait mieux. Comme ça on ne va pas être embêté avec ce qui se passe à l’intérieur. On ne va pas venir écraser res avec res, ce n’est pas bon. Et le global res qu’on a là, on va pouvoir l’utiliser à cet endroit-là. Maintenant on peut dire ici d’envoyer IsActive si jamais on voit IsActive. Comme ça, ça va venir filtrer le res, et ça va nous renvoyer que les données qui sont intéressantes. On pourrait essayer. Pensez bien à relancer le serveur. Donc là ce qu’on va faire c’est qu’on va se rendre ici. Effectivement ça nous renvoie bien ça. Et maintenant si on dit IsActive comme ça, ça ne nous renvoie, comme vous pouvez le voir ici, que ceux qui sont actives. Vous avez vu que le contenu de la réponse a été tronqué, ce n’est pas le même. Donc effectivement, on peut s’amuser à travailler avec du json et à travailler avec des urls, très facilement. Récapitulons, on a fait simplement ici un match sur le slash pour renvoyer absolument tout, et un match sur IsActive pour ne renvoyer que ce qui est actif. Bien sûr vous pourriez faire la même chose pour IsInactive. Si vous voulez le coder très rapidement, il suffit de faire un copier-coller, de remplacer ça par False, de travailler un petit peu ici quand même sur le corps parce que c’est quand même plus agréable en fait d’avoir un corps différent. Parce que vous allez vous y retrouver beaucoup plus facilement, et de venir effectivement encore une fois reprendre ça, comme ça, tac, de le remettre à cet endroit-là, et de lui dire, si c’est IsInactive, à ce moment-là, on envoie IsInactive. Donc là, ça vous permet quand même de travailler des fonctionnalités à l’extérieur tout en continuant à avoir le matching en fait des urls directement dans votre serveur. Pensez bien toujours à relancer si vous voulez voir ce que ça donne. On va retourner sur notre petite page. On va relancer. Donc là effectivement, ça fonctionne. Si on demande le IsActive, ça continue à fonctionner. Si on demande le IsInactive, effectivement ça nous renvoie tous ceux qui sont False en active. Voilà comment on sert du json. Ce n’est pas compliqué. La seule chose réellement à respecter, c’est celle-ci : il faut stringifier obligatoirement parce que sinon vous n’allez pas renvoyer en fait un contenu sous forme de texte, et le serveur ne va pas du tout apprécier. Le serveur va tout simplement crasher.

L'essentiel de Node.js

Exploitez les possibilités de Node.js et créez des applications côté serveur entièrement en JavaScript. Travaillez avec des requêtes web, gérez le protocole WebSocket, etc.

4h00 (44 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Node.js Node.js 7.0
Spécial abonnés
Date de parution :26 déc. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !