Node.js: Environnement de fonctionnement JavaScript efficace pour les E / S non bloquants
Cet article présentera brièvement les caractéristiques de base de Node.js et démontrera ses fonctions clés via la ligne de commande. Node.js est basé sur le moteur JavaScript V8 de Chrome, et ses E / S non bloquantes et ses mécanismes de fonctionnement asynchrones le rendent excellent pour gérer les demandes simultanées.
Les avantages de Node.js:
E / S non bloquant: Node.js est conçu pour éviter de bloquer l'exécution du programme par les opérations d'E / S. Dans la programmation synchrone traditionnelle, les opérations d'E / S (telles que la lecture de fichiers, la demande du réseau) feront une pause l'exécution du programme jusqu'à la fin de l'opération. Node.js continue d'effectuer d'autres tâches tandis que les opérations d'E / S sont en cours, améliorant considérablement l'efficacité.
Opérations asynchrones: Node.js utilise largement les fonctions de rappel pour gérer les opérations asynchrones. La fonction de rappel est exécutée une fois l'opération d'E / S terminée, évitant le blocage causé par les opérations synchrones.
V8 JavaScript Engine: Node.js s'exécute sur le moteur JavaScript V8 efficace, garantissant ses performances.
Rappels:
La fonction de rappel est la base de la programmation asynchrone Node.js. Ils sont passés sous forme de paramètres à la fonction et sont exécutés une fois l'opération asynchrone terminée. Voici un exemple simple:
> function add(a, b, callback) { var result = a + b; callback(result); }
Cette fonction add
accepte deux nombres et une fonction de rappel comme paramètres. Il calcule la somme de deux numéros, puis appelle la fonction de rappel et y transmet le résultat.
> add(2, 3, function (c) { console.log('2 + 3 = ' + c) }); > add(1, 1, function (c) { console.log('Is 1 + 1 = 3? ' + (c === 3)); });
Exemple de fonctionnement asynchrone:
Utilisez la fonction setTimeout
pour simuler les opérations asynchrones:
> function doSomething(asyncCallback) { setTimeout(asyncCallback, Math.random() * 1000 + 1000); } > doSomething(function () { console.log('This runs asynchronously.'); }); > console.log('test');
Ce code démontre l'ordre d'exécution non déterministe des rappels asynchrones.
E / S de fichiers:
node.js fournit le module fs
pour les opérations de fichiers asynchrones:
> var fs = require('fs'); > fs.writeFile('message.txt', 'Hello Node.js', function () { console.log('Saved.'); }); > console.log('Writing file...'); > fs.readFile('message.txt', {encoding: 'utf-8'}, function(err, data) { console.log(data); });
Créer un serveur Web:
Node.js 'http
Le module peut être utilisé pour créer un serveur Web simple:
> var http = require('http'); > var server = http.createServer(function (request, response) { response.end('Hello Node.js'); }); > server.listen(8080);
Accès localhost:8080
Pour voir les résultats renvoyés par le serveur.
async / attend:
es2017 présente la syntaxe async/await
, ce qui simplifie l'écriture du code asynchrone:
async function sum(a,b) { return a + b; }
await
ne peut être utilisé que dans la fonction async
et est utilisé pour attendre la résolution de la promesse.
Résumé:
Node.js est un choix idéal pour construire des applications de réseau haute performance avec ses E / S légères et non bloquantes et de puissantes capacités de programmation asynchrones. Ses fonctionnalités basées sur JavaScript réduisent également le seuil de développement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!