L'essentiel de Node.js

Construire le serveur

Testez gratuitement nos 1300 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Le module HTTP vous permet de créer un serveur et de le faire tourner sur un port en particulier. En quelques lignes, vous disposerez d'un vrai serveur HTTP sur votre machine.
07:14

Transcription

Alors on a vu comment faire de la requête. C’est bien de faire des petites requêtes avec node.js, c’est simple, c’est facile. Maintenant, comment on fait pour monter un serveur http ? Eh bien, vous allez voir. C’est encore plus simple. On va faire un var http, et on va faire un require du module http. Alors, vous pouvez le faire avec http, sans mêler un certificat tout ça, c'est pas tout à fait le même truc, bah avec http, c’est beaucoup plus simple. Donc là on va le faire avec http, et je vais vous montrer comment en quelques lignes, j’arrive déjà à avoir un serveur fonctionnel, un serveur avec lequel je peux travailler. Si vous avez déjà monté des serveurs avec Apache, ou monté des serveurs avec EngineX, c’est un petit peu compliqué, il y a de la configuration, pas mal de choses. Ici, pas du tout. Ici on va faire un http.create server, et on a créé un serveur. Voilà, c’est aussi simple que ça. Il faut quand même faire quelques petites choses, bon. Mais beaucoup moins qu’avec les autres. On va créer ici une fonction anonyme avec res et req. D’ailleurs c’est plutôt dans l’autre sens. C’est req et res, voilà. C’est request d’abord et response ensuite. Ce qui est un petit peu plus logique d’ailleurs, puisque c’est d’abord une requête, et ensuite une réponse. Et puis là, on va lui donner des informations. Nous ce qu’on va faire, c’est qu’on va câbler toujours la même chose pour le moment. On va lui mettre un header. On va faire write head, comme ça. On va lui dire c’est de la 200. Et après, on va lui donner ici un objet de paramètre. Or, c’est différent en fait, header de réponse. Donc nous ici, on va utiliser le header content type qui nous permet de paramétrer le type de la réponse, et on va mettre du text/plain. Donc du texte plain, simplement du texte. Faites très attention. Ne vous trompez pas sur cette partie-là, parce que sinon ça ne va pas avoir le fonctionnement adéquat. Et puis enfin, on va aussi lui mettre un petit contenu. Un contenu sympa qu’on va vouloir afficher. Res.end ici, et je vais simplement lui mettre « je suis un serveur http ». Alors en faisant ça, vous venez de créer un serveur qui va envoyer tout le temps la même information, un texte plain, avec « je suis un serveur http », directement dans le body. Maintenant il faut quand même qu’on démarre ce serveur. Alors pour démarrer ce serveur, il va falloir choisir un port d’exécution. La plupart du temps, pour les serveurs qui sont en node.js, on va utiliser le port 3000. C’est un truc un peu par défaut. Mais alors, ne vous inquiétez pas parce que ça, ça tourne en port 3000 sous node.js, mais on peut utiliser un reverse. c'est à dire qu’on pourrait utiliser EngineX par exemple, pour venir servir le port 3000 sur le port 80. Du coup, ce serait extrêmement simple à la fin. Alors on va aussi se mettre ici un petit console.log, et on va lui dire server on. Et là, on va lui mettre une url. Si vous avez un terminal un peu avancé comme le mien, c’est bien, parce que si vous composez ici une url, c’est hyper intéressant. On pourra cliquer dessus pour aller directement sur l’url, ce qui est beaucoup plus simple. Là, avec ces quelques lignes, on en a 12, saut de ligne compris, eh bien, on a créé un serveur http. Vous voyez que c’est extrêmement simple. Évidemment on va pousser un petit peu après, parce qu’on va voir comment on va servir des fichiers statiques, comment on va servir de json, comment on va récupérer des datas. Mais ça, c’est uniquement les lignes que vous devrez écrire pour créer un serveur. C’est extrêmement simple, il n’y a pas plus simple que ça. Maintenant, on va le lancer ce serveur. Là, il nous dit qu’il est en train de démarrer, et qu’il a démarré sur le port 3000. Vous voyez qu’en plus le démarrage est extrêmement rapide. Ce n’est pas une initialisation complète d’Apache, par exemple. On va se rendre sur le localhost:3000 ici. Et on voit effectivement « Je suis un serveur http », qui apparaît. C’est génial. Ça veut dire que là, en quelques lignes, vous avez déjà créé un serveur. Il n’y a pas besoin de plus de lignes que ça. C’est extrêmement rapide. Maintenant, imaginons que j’ai envie de servir tout de suite là, comme ça, du html. On va faire text/html, donc parce que c’est le header qui doit être envoyé pour le type de contenu html, text/html. Et on va voir qu’on a une différence. Alors attention cependant quand vous allez travailler comme ça avec des serveurs, vous allez voir que c’est un petit peu embêtant. Un petit peu plus tard, je vous montrerai un outil qui permet d’aller plus vite. Mais on est obligé de tuer le serveur. Donc on va faire un CONTRÔLE-C, pour tuer le serveur. Et on va devoir relancer le serveur. Il faut le faire à chaque fois que vous faites une modif. Si à un moment vous faites une modif et vous voyez qu’il se passe rien, c’est certainement que vous avez pas tué le serveur et vous l'avez pas relancé. Il faut penser à ça. C’est une des principales erreurs. Généralement on se trompe. On va retourner là-dessus, et on voit qu’effectivement, entre les deux là, il y a bien une différence. Vous voyez bien la différence ? C’est une différence de formatage, pourquoi ? Parce qu’en fait avec Chrome, ce qui va se passer c’est que même s’il ne reconnaît pas bien le contenu, il va quand même vous faire du html, et il va forcément en fait, mettre ça, l’autre string là, dans un wrapper html qui va vous créer automatiquement la petite page de contenu. Mais cette page de contenu-là, on pourrait aussi, sans aucun problème, venir la travailler. C'est-à-dire qu’on pourrait demander un affichage du code source de la page. Donc le code source de la page, on voit qu’il n’y a que ça. Et pour voir si tout s’est bien passé, donc là on voit qu’effectivement le contenu de la page, ce n’est uniquement que ça. Et on voit que lui, directement quand on est sous Chrome, il est venu travailler cette partie-là. Alors on va la copier cette partie. Donc simplement une réponse assez basique. Et ici on va lui faire une variable, responseBody. Et vous allez voir qu’on peut vraiment servir du html. Alors je vais utiliser comme ça les apostrophes, donc renversées, et je vais simplement coller une petite réponse comme ça, que je vais pouvoir avoir ici, avec un petit peu de formatage. Bon, on ne va pas avoir un formatage de folie non plus, mais ici on va juste formater ça comme ça. On va pousser ça. On va mettre le head ici. Et puis à cet endroit-là, on va mettre carrément un h1, c'est-à-dire qu’on va mettre un paragraphe de niveau 1, du vrai html que l’on a envie de servir. Donc là on ne va plus s’amuser à servir juste du texte, mais du vrai html. Et ce responseBody, on va le mettre ici dans le res.end. Donc on va envoyer cette chaîne de caractère complète, qui est finalement du html, à l’intérieur, et on va relancer le serveur. Et vous allez voir qu’effectivement, en relançant le serveur, on a bien ici du vrai html. En quelques lignes encore une fois, ici on vient créer un contenu html. On vient l’insérer dans la fin de la response, donc renvoie cette response-là et on vient de créer très facilement, eh bien, un petit serveur http, qui est somme toute extrêmement basique, mais qui nous permet quand même d’avoir de l’interaction. Mieux que ça, on pourrait pourquoi pas avoir ici un petit paragraphe qui se trouve à cet endroit-là, qui récupère de l’information, vous l’avez déjà vu ça, pourquoi pas de la requête ? Et là, de la requête, on peut récupérer par exemple l’url. Et puis pourquoi pas on s’en fait aller, un petit dernier en dessous, pour avoir ici la méthode d’appel. Et en faisant ça, vous relancez le serveur un petit coup. Vous allez dessus et regardez. On a absolument toutes les informations. Maintenant qu’est ce qui se passe si je donne n’importe quel path ? Bah ça va fonctionner aussi parce qu'en fait, le serveur que vous avez créé ne réagit pas sur les routes, mais il est câblé tout le temps et il renvoie tout le temps la même réponse. Par contre, il vous donne bien les bonnes infos. Donc vous voyez que déjà l’interaction est complètement possible à l’intérieur d’un contenu que l’on renvoie à l’utilisateur. Vous imaginez maintenant les possibilités qu’on va avoir après.

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 !