L'application principale de Node.js est la programmation serveur.
L'un des principaux objectifs de la conception de Node.js est de fournir un environnement serveur hautement évolutif. C'est la différence entre les moteurs Node et V8 que nous avons présentés au début de ce chapitre. En plus d'utiliser le moteur V8 pour analyser JavaScript, Node fournit également des bibliothèques d'applications hautement optimisées pour améliorer l'efficacité du serveur. Par exemple, le module HTTP a été réécrit en C spécifiquement pour un serveur HTTP rapide et non bloquant. Jetons un coup d'œil à l'exemple classique « Hello World » de Node utilisant un serveur HTTP
/*Créer un serveur*/
var server=http.createServer(function(req,res){ res.writeHead(200,{"Content-type":'text/html'}); res.end('hello world'); });
/*Surveillance IP et port*/
server.listen(8124,'127.0.0.1',function(){ console.log('服务器创建成成功:127.0.0.1:8124'); });
Le code en cours d'exécution est le suivant
ZXD@ZXD-PC /K/work/learn/nodejs/cvs01 $ node app
Serveur créé avec succès : 127.0.0.1:8124
Cet exemple de code inclut d'abord la bibliothèque HTTP dans le programme via la méthode require. De nombreux langages ont cette approche consistant à inclure d'autres bibliothèques, Node utilise le style de module CommonJS.
Ce qu'il faut comprendre maintenant, c'est que les fonctions de la bibliothèque HTTP ont été attribuées à l'objet http.
Ensuite, nous avons besoin d'un serveur HTTP. D'autres langages tels que PHP doivent s'exécuter sur un serveur comme Apache, mais Node en est différent car Node lui-même est un serveur Web.
Mais cela signifie également que nous devons d'abord créer le serveur. La ligne de code suivante appelle une méthode de modèle d'usine du module HTTP
(createServer) pour créer un nouveau serveur HTTP. Le serveur HTTP nouvellement créé n'est affecté à aucune variable, il deviendra uniquement un objet anonyme qui vit dans la portée globale.
Nous pouvons initialiser le serveur via des appels en chaîne et lui dire d'écouter sur le port 8124. Lors de l'appel de createServer, nous passons une fonction anonyme en paramètre. Cette fonction est liée à l'écouteur d'événements du serveur nouvellement créé pour le traitement des événements de demande. Les événements de message sont au cœur de JavaScript et de Node. Dans cet exemple, chaque fois qu'une nouvelle demande d'accès arrive sur le serveur Web, celui-ci appellera la méthode fonction que nous avons spécifiée pour la gérer. Nous appelons ce type de méthode un rappel. Car chaque fois qu’un événement se produit, nous rappellerons toutes les fonctions qui écoutent cet événement.
Exemple 2 :
En raison d'un voyage dans une autre ville et de l'absence d'ordinateur à portée de main, le framework dom ne peut pas être publié comme prévu, alors profitez de cette occasion pour apprendre quelque chose de nouveau. Le besoin le plus urgent au cours de cette période était de trouver un backend ultra-léger pour configurer mon framework, j'ai donc fait appel au légendaire Server-Side Javascrpt. Le JS back-end le plus célèbre est sans aucun doute node.js de Ryan Dahl, et l'autre est jaxer produit par le fournisseur IDE aptana.
Téléchargez d'abord node.js, puis décompressez-le sur le lecteur E, renommez-le en node, puis entrez cmd dans le menu Démarrer et utilisez la commande cd pour basculer vers le répertoire de décompression nodejs :
Premier exemple : bonjour tout le monde.
Créez le fichier hello.js dans le répertoire du nœud, puis saisissez :
var sys = require("sys"); sys.puts("Hello world");
Ensuite, nous entrons dans le nœud de commande hello.js dans la plate-forme de nommage, et nous pouvons voir la sortie de la plate-forme de nommage Hello world.
Deuxième exemple : hello world2.
D'accord, cette fois, nous essayons d'afficher Hello World à partir du navigateur. Créez http.js dans le répertoire du nœud et saisissez :
var sys = require("sys"), http = require("http"); http.createServer(function(request, response) { response.sendHeader(200, {"Content-Type": "text/html"}); response.write("Hello World!"); response.close(); }).listen(8080); sys.puts("Server running at http://localhost:8080/");
Ensuite, nous entrons le nœud de commande http.js dans la plateforme de nommage et http://localhost:8080/
dans le navigateurLe troisième exemple : hello world2.
node.js fournit une classe Buffer pour convertir des chaînes de différents encodages.
Prend actuellement en charge trois types : 'ascii', 'utf8' et 'binary'. Voir ici pour plus de détails
var Buffer = require('buffer').Buffer, buf = new Buffer(256), len = buf.write('\u00bd + \u00bc = \u00be', 0); console.log(len + " bytes: " + buf.toString('utf8', 0, len));
Le quatrième exemple : hello world3.
//synopsis.js //synopsis 摘要, 梗概,大纲 var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World\n'); }).listen(8124); console.log('Server running at http://127.0.0.1:8124/');