Lors de la conférence précédente,
nous avons appris les éléments essentiels de la mise en réseau, y compris les détails du protocole HTTP.
Maintenant, nous allons examiner comment Node peut être utilisé pour construire un serveur HTTP.
C' est là que le module HTTP de base qui est intégré dans Node vient à notre aide.
En outre, nous allons examiner quelques autres modules de nœud de base qui sont utiles pour
construire un serveur HTTP à partir de l'utilisation de Node.
Alors, comment pouvons-nous utiliser le module HTTP Node ?
Comme je l'ai mentionné, le module HTTP est l'un des modules de base qui sont intégrés dans le nœud.
Donc, il s'agit d'un module réseau de base qui prend en charge
une base haute performance pour la pile HTTP.
Donc, l'utilisation du module dans notre application Node
nous oblige à importer le module dans notre application.
Donc, c'est ce que nous faisons en disant const HTTP = require et,
le nom du module HTTP là.
Maintenant, une fois le module
importé, ce module HTTP prend en charge une fonction CreateServer qui prend,
comme paramètre, une fonction qui agit comme
une fonction de rappel pour le module CreateServer et
cette fonction a deux paramètres : requête et réponse.
La requête est le message de demande qui vient
du côté client et nous pouvons analyser le message de demande, puis extraire
beaucoup d'informations du message de demande et l'utiliser pour prendre des
décisions sur la façon dont nous construisons le message de réponse correspondant à cela.
Le message de réponse est construit en utilisant le deuxième paramètre ici, le res,
sur lequel nous pouvons construire les différentes valeurs d'en-tête pour
notre message de réponse HTTP ainsi que le corps du message de réponse HTTP.
Maintenant, pour démarrer le serveur,
une fois que vous avez créé le serveur,
alors vous diriez server.listen, puis fournissez le numéro de port
et le nom d'hôte pour le serveur et qui va démarrer notre serveur.
Nous examinerons quelques détails dans l'exercice d'exemples qui suit cette conférence.
Comme je l'ai mentionné, les informations de message de demande entrante sont disponibles
via le paramètre req que la fonction prend dans la méthode CreateServer.
Donc, le req ou la demande,
si vous voulez lui donner le nom complet,
vous pouvez l'appeler comme une requête mais en général, nous avons trouvé que dans des
exemples, nous avons utilisé req pour représenter le message de requête.
Il prend en charge les propriétés de l'objet Javascript comme
l'en-tête, le corps et aussi diverses informations qui peuvent être extraites,
l'URL et la méthode qui a été demandée par ce site client.
Et, en réponse, vous construisez la réponse en utilisant
l'objet Javascript de réponse qui prend en charge cette fonction setHeader,
la fonction StatusCode qui peut être définie sur le code d'état du message de réponse.
Et puis vous écririez le message disant
res.write et vous termineriez le message en disant
res.end et cela prend la dernière partie du corps pour le message.
Le corps peut être du texte standard ou du HTML ou
toute autre information que vous souhaitez inclure dans le corps de ce message de réponse.
Mais une fois que le res.end est appelé,
la réponse est renvoyée au client à partir du serveur HTTP.
Deux autres modules de base qui nous sont utiles
lorsque nous construisons le serveur HTTP Node est le module de chemin de nœud.
Le module chemin d'accès nous permet de spécifier le chemin d'accès à un fichier, puis
d'examiner si le fichier existe ou d'examiner plus de détails sur un fichier.
Par exemple, l'extension du fichier, le
nom et ainsi de suite.
Ainsi, le module de chemin peut être utilisé dans
notre application en exigeant le module de chemin comme indiqué ici.
Et puis, cela prend en charge les méthodes,
comme par exemple, path.resolve,
qui convertira un chemin relatif en
un chemin absolu que le chemin entier vers le fichier.
Vous pouvez également vérifier le nom de l'extension du fichier en appelant la
fonction path.extname et fournir le chemin d'accès du fichier qui
examinera l'extension du nom de fichier.
De même, le module de système de fichiers,
encore une fois un module de base dans Node,
nous permettra de lire et d'écrire
des fichiers qui existent dans le système de fichiers local sur l'ordinateur.
Ainsi, les modules de système de fichiers peuvent être utilisés dans
notre application Node en l'exigeant comme indiqué ici.
Et puis, ces modules de système de fichiers prennent en charge de nombreuses méthodes,
y compris une méthode pour vérifier si le fichier existe dans le système de fichiers local ou non.
Donc, le fs.exists prendra
le FilePath comme premier paramètre et le second paramètre est
une fonction de rappel qui reviendra avec un paramètre que nous pouvons nommer tel qu'il existe.
Ce paramètre, existe, sera true si le fichier
existe et sera false si le fichier n'existe pas dans le système de fichiers local.
De même, vous pouvez lire à partir du fichier en créant un flux de lecture en fonction du chemin d'accès du fichier.
Ainsi, vous pouvez dire fs.CreateReadStream et
le FilePath et cela peut être transmis au message de réponse.
Ainsi, le fichier sera lu à partir du fichier
donné par le fichier FilePath, puis le contenu sera mis
dans le corps du message de réponse en appelant une fonction chaînée comme indiqué ici.
Donc, ce sont quelques exemples de certains modules de nœud de base qui seront très
utiles lorsque nous construisons un serveur HTTP en utilisant Node.
Maintenant, que nous comprenons quelques détails sur le serveur HTTP et comment il peut être construit,
passons à l'exercice,
où nous allons construire un simple serveur HTTP Node qui va d'abord fournir
des informations de base et ensuite, nous allons servir des fichiers
qui existent dans un dossier public dans notre projet.