Node.js est un logiciel open source et totalement gratuit qui permet aux développeurs Web de créer des programmes réseau évolutifs et rapides. Basé sur l’exécution JavaScript de Chrome, le logiciel Node.js est extrêmement efficace et léger, en particulier parce qu’il utilise un modèle d’E / S non bloquant piloté par les événements.
La meilleure plateforme pour exécuter du code JavaScript côté serveur
Node.js est actuellement considéré comme la meilleure plate-forme pour l’exécution de code JavaScript côté serveur, utilisé dans les grandes entreprises telles que Google, eBay, Yahoo, LinkedIn, Microsoft, Cloud9 et bien d’autres.
Exemple obligatoire
Le code suivant crée un serveur Web simple qui répond avec "Hello World" pour chaque requête.
var http = require ('http');
http.createServer (fonction (req, res) {
)res.writeHead (200, {'Content-Type': 'text / plain'});
res.end ('Hello Worldn');
}). listen (1337, '127.0.0.1');
console.log ('Serveur fonctionnant à http://127.0.0.1:1337/');
Pour exécuter le serveur HTTP, vous devrez insérer le code ci-dessus dans un fichier appelé & ldquo; example.js & rdquo; (sans les guillemets) et l'exécuter avec la commande node d'un émulateur de terminal:
% node example.js
Serveur fonctionnant à http://127.0.0.1:1337/
Systèmes d'exploitation pris en charge
Node.js est une application multi-plateforme qui a été testée avec succès sous de nombreuses distributions GNU / Linux, notamment Debian, Ubuntu, Arch Linux, Fedora, Red Hat Enterprise Linux, openSUSE, Mageia, Slackware, etc. comme sur les systèmes d'exploitation commerciaux Mac OS X et Microsoft Windows. Les architectures de jeux d'instructions 64 bits et 32 bits sont actuellement prises en charge.
Sous le capot, les exigences et la disponibilité
Comme mentionné, il s’agit d’un logiciel multi-plateforme. Il peut être téléchargé en tant qu'installateurs préinstallés pour les systèmes d'exploitation Mac OS X, GNU / Linux et Microsoft Windows, ainsi que pour une archive source universelle pouvant être compilée et installée sur pratiquement tous les systèmes d'exploitation pris en charge par Python.
Nouveautés dans cette version:
- console:
- La méthode console.timeLog () a été implémentée. # 21312
- deps:
- Passez à libuv 1.22.0. # 21731
- Mise à niveau vers ICU 62.1 (Unicode 11, CLDR 33.1). # 21728
- http:
- Ajout de la prise en charge du passage des options timeout et agent à http.request. # 21204
- inspecteur:
- Exposez l'API de la console d'origine dans require ('inspecteur'). console. # 21659
- napi:
- Ajout du support expérimental pour les fonctions traitant des nombres bigint. # 21226
- processus:
- La méthode process.hrtime.bigint () a été implémentée. # 21256
- Ajout de l’argument de ligne de commande --title pour définir le titre du processus au démarrage. # 21477
- trace_events:
- Ajout des métadonnées nom_processus. # 21477
- Ajout de nouveaux collaborateurs
- codebytere - Shelley Vohr
Nouveautés dans la version 10.0.0:
- Prise en charge complète de N-API
- Démarrage facile avec le débogage Time-Travel via une nouvelle extension de code Visual Studio
- Prise en charge de TTD pour les générateurs et les fonctions asynchrones
- Prise en charge du protocole Inspector
- Augmentation de la stabilité et autres améliorations assorties
Nouveautés dans la version:
- async_hooks:
- ajouter des événements de trace à async_hooks (Andreas Madsen) # 15538
- Ajouter des types de fournisseurs pour le serveur net (Andreas Madsen) # 17157
- console:
- console.debug peut maintenant être utilisé en dehors de l'inspecteur (Benjamin Zaslavsky) # 17033
- deps:
- mettez à niveau libuv vers 1.18.0 (cjihrig) # 17282
- patch V8 à 6.2.414.46 (Myles Borins) # 17206
- module:
- module.builtinModules renverra une liste de modules intégrés (Jon Moss) # 16386
- n-api:
- ajouter une aide pour les addons afin d'obtenir la boucle d'événement (Anna Henningsen) # 17109
- processus:
- process.setUncaughtExceptionCaptureCallback peut maintenant être utilisé pour personnaliser le comportement de --abort-on-uncaught-exception (Anna Henningsen) # 17159
- Un gestionnaire de signaux est maintenant capable de recevoir le code de signal qui a déclenché le gestionnaire. (Robert Rossmann) # 15606
- src:
- les développeurs peuvent maintenant utiliser Node :: CreatePlatform pour créer une instance de NodePlatform (Cheng Zhao) # 16981
- stream:
- writable.writableHighWaterMark et readable.readableHighWaterMark renverront les valeurs avec lesquelles l'objet de flux a été instancié avec (Calvin Metcalf) # 12860
- Ajout de nouveaux collaborateurs
- maclover7 Jon Moss
- Guy Bedford Guy Bedford
- hashseed Yang Guo
Nouveautés dans la version 9.2.0:
- crypto:
- Création d’un support avec les versions 1.1.0 et 1.0.2 (David Benjamin) # 16130
- fs:
- fs.realpathSync.native et fs.realpath.native sont maintenant exposés (Ben Noordhuis) # 15776
- processus:
- exposer process.ppid (cjihrig) # 16839
Nouveautés dans la version 8.5.0:
- build:
- Les instantanés sont à présent réactivés dans la version V8 # 14875
- console:
- Implémentation minimale de console.group (). # 14910
- deps:
- mettez à niveau libuv vers la version 1.14.1 # 14866
- mettre à jour nghttp2 à v1.25.0 # 14955
- dns:
- Ajouter une option verbatim à dns.lookup (). Lorsque la valeur est true, les résultats du résolveur DNS sont transmis tels quels, sans la redistribution que Node.js fait sinon en mettant les adresses IPv4 avant les adresses IPv6. # 14731
- fs:
- ajoutez fs.copyFile et fs.copyFileSync, ce qui permet une copie plus efficace des fichiers. 15034
- inspecteur:
- Activer les traces de pile asynchrones # 13870
- module:
- Ajouter le support pour ESM. Ceci est actuellement derrière l'indicateur --experimental-modules et nécessite l'extension .mjs. node --experimental-modules index.mjs # 14369
- napi:
- implémenter promesse # 14365
- os:
- Ajoutez le support de la notation CIDR à la sortie de la méthode networkInterfaces (). # 14307
- perf_hooks:
- Une implémentation initiale de l’API Performance Timing pour Node.js. Il s'agit de la même API de chronométrage des performances que les navigateurs modernes implémentent avec un certain nombre de propriétés spécifiques à Node.js. Les API mark () et measure () Timing de l'utilisateur sont implémentées. # 14680
- tls:
- plusieurs PFX dans createSecureContext # 14793
- Ajout de nouveaux collaborateurs:
- BridgeAR - Ruben Bridgewater
Nouveautés dans la version 8.3.0:
- Le moteur V8 a été mis à niveau vers la version 6.0, avec un profil de performances considérablement modifié.
- Autres changements notables:
- DNS:
- Les instances indépendantes de résolveur DNS sont désormais prises en charge, avec prise en charge de l’annulation des requêtes correspondantes.
- N-API:
- Plusieurs fonctions N-API pour la gestion des erreurs ont été modifiées pour prendre en charge l’attribution des codes d’erreur.
- REPL:
- La prise en charge de la saisie automatique pour require () a été améliorée.
- Utilitaires:
- La norme de codage WHATWG (TextDecoder et TextEncoder) a été implémentée en tant que fonctionnalité expérimentale.
Quoi de neuf dans la version 8.1.3:
- Stream Deux régressions avec le module de flux ont été corrigées:
- L’événement finish sera désormais toujours émis après l’événement error s’il est émis: [0a9e96e86c] # 13850
- En mode objet, les flux lisibles peuvent désormais utiliser à nouveau undefined. [5840138e70] # 13760
Nouveautés dans la version 8.1.2:
- Corrigez les propriétés de process.release endommagées dans 8.1.1, ce qui empêche de compiler les add-ons natifs sur des plates-formes autres que Windows. Ceci est un correctif dans le processus de génération Node.js, il n'y a donc pas de commits de code supplémentaires sur 8.1.1.
Nouveautés dans la version 7.7.1:
- [c8e34b61f6] - build: ajout des fichiers d'en-tête src / tracing manquants (Daniel Bevenius) # 10851
- [96f55f9e59] - src: déplacez trace_event.h dans l'en-tête interne (Ben Noordhuis) # 10959
- [30c80cbe6f] - src: correction du nettoyage de TracingController (Jason Ginchereau) # 10623
- [b89b2a7d36] - src: initialise toujours le contrôleur de traçage dans l'agent (Matt Loring) # 10507
- [54e55e05ca] - test: rendre les données de test-intl-no-icu plus robustes (Michael Zasso) # 10992
- [7b253eb3ed] - test: augmenter la rigueur pour test-trace-event (Rich Trott) # 11065
- [3dc4a5f1f4] - traçage: correction -Avertissement de champs privés -Utilisé (Santiago Gimeno) # 10416
- [8a918bf411] - traçage: correctif -Avertissement de commande (Santiago Gimeno) # 10416
Nouveautés dans la version 7.4.0:
- buffer:
- Améliorer les performances de l’allocation de mémoire tampon d’environ 11%. (Brian White) # 10443
- Améliorez les performances de Buffer.from () de ~ 50%. (Brian White) # 10443
- événements: améliorez les performances de EventEmitter.once () de ~ 27%. (Brian White) # 10445
- fs: Permet de transmettre Uint8Array aux méthodes fs où les tampons sont pris en charge. (Anna Henningsen) # 10382
- http: améliorez les performances du serveur http de ~ 7%. (Brian White) # 6533
- npm: mise à niveau vers v4.0.5 (Kat Marchan) # 10330
Nouveautés dans la version 7.2.1:
- buffer:
- Annulation de la dépréciation de l'exécution de l'appel de Buffer () sans nouvelle. (Anna Henningsen) # 9529
- Correction de buffer.transcode () pour les codages de caractères à un octet sur UCS2. (Anna Henningsen) # 9838
- promis: --trace-warnings produit désormais des stacktraces utiles pour les avertissements Promise. (Anna Henningsen) # 9525
- repl: Correction d'un bug empêchant une analyse correcte des fonctions du générateur. (Teddy Katz) # 9852
- V8: correction d’une instance importante de la régression des performances. (Franziska Hinkelmann) # 9730
Nouveautés dans la version 7.2.0:
- crypto: les méthodes decipher setAuthTag () et setAAD renvoient maintenant ceci.
- dns: implémenté {ttl: true} pour resolve4 () et resolve6 ().
- libuv: mise à niveau vers v1.10.1
- Correction d'un dépassement de tampon potentiel lors de l'écriture de données sur la console sous Windows 10. (CVE-2016-9551)
- process: Ajout d'une nouvelle propriété externe aux données renvoyées par memoryUsage ().
- tls: Correction d’une fuite de mémoire lorsque des écritures étaient en attente sur une connexion TLS détruite lors d’une prise de contact.
- V8 (dep): mise à niveau vers v5.4.500.43
- v8: les données renvoyées par getHeapStatistics () incluent désormais trois nouveaux champs: malloced_memory, peak_malloced_memory et does_zap_garbage.
Nouveautés dans la version 6.4.0:
- build: les symboles zlib et les symboles OpenSSL supplémentaires sont désormais visibles sur les plates-formes Windows. (Alex Hultman) # 7983 et # 7576
- child_process, cluster: les processus enfants fourchus et les opérateurs de cluster prennent désormais en charge la configuration stdio. (Colin Ihrig) # 7811 et # 7838
- child_process: argv [0] peut maintenant être défini sur des valeurs arbitraires dans les processus générés. (Pat Pannuto) # 7696
- fs: fs.ReadStream expose maintenant le nombre d'octets qu'il a lu jusqu'à présent. (Linus Unneback) # 7942
- repl: Le REPL supporte maintenant le mode éditeur. (Prince J Wesley) # 7275
- util: inspect () peut maintenant être configuré globalement avec util.inspect.defaultOptions. (Roman Reiss) # 8013
Nouveautés dans la version 6.3.0:
- buffer: Ajout de buffer.swap64 () pour compléter swap16 () & amp; swap32 (). (Zach Bjornson) # 7157
- build: De nouvelles options de configuration ont été ajoutées pour créer Node.js en tant que bibliothèque partagée. (Stefan Budeanu) # 6994
- Les options sont: --shared, --without-v8-platform & amp; --without-bundled-v8.
- crypto: les certificats racine ont été mis à jour. (Ben Noordhuis) # 7363
- debugger: L'adresse du serveur est maintenant configurable via --debug = :. (Ben Noordhuis) # 3316
- npm: mise à niveau de npm à v3.10.3 (Kat Marchan) # 7515 & amp; (Rebecca Turner) # 7410
- readline: Ajout de l'option prompt au constructeur readline. (Evan Lucas) # 7125
- repl / vm: sigint / ctrl + c va maintenant sortir des boucles infinies sans arrêter l'instance de Node.js. (Anna Henningsen) # 6635
- src:
- Ajout d’une API C ++ publique node :: FreeEnvironment. (Cheng Zhao) # 3098
- Exigences refactorisées ("constantes"), les constantes sont désormais disponibles directement à partir de leurs modules respectifs. (James M Snell) # 6534
- stream: Amélioration des performances readable.read () jusqu'à 70%. (Brian White) # 7077
- timers: setImmediate () est maintenant 150% plus rapide dans certaines situations. (Andras) # 6436
- util: Ajout d’une option breakLength à util.inspect () pour contrôler la façon dont les objets sont formatés sur les lignes. (cjihrig) # 7499
- v8-inspector: Un support expérimental a été ajouté pour le débogage de Node.js sur le protocole d'inspecteur. (Ali Ijaz Sheikh) # 6792
- Remarque: Cette fonctionnalité est expérimentale et peut être modifiée ou supprimée.
- Vous pouvez essayer cette fonctionnalité en exécutant Node.js avec l'indicateur --inspect.
Nouveautés dans la version 6.0.0:
- Tampon:
- De nouveaux constructeurs de tampons ont été ajoutés # 4682 et # 5833.
- Les constructeurs Buffer () et SlowBuffer () existants sont obsolètes dans les documents n ° 4682 et 5833.
- Les API de tampon précédemment obsolètes sont supprimées # 5048, # 4594.
- Amélioration de la gestion des erreurs # 4514.
- La méthode Buffer.prototype.lastIndexOf () a été ajoutée # 4846.
- Cluster:
- Travailleur émis comme premier argument dans l'événement "message" # 5361.
- La propriété worker.exitedAfterDisconnect remplace worker.suicide # 3743.
- Console:
- L'appel de console.timeEnd () avec un libellé inconnu émet désormais un avertissement de processus au lieu de lancer # 5901.
- Crypto:
- Amélioration de la gestion des erreurs # 3100, # 5611.
- Liaisons de classe de certificat simplifiées # 5382.
- Amélioration du contrôle sur le mode FIPS # 5181.
- pbkdf2 digérer la surcharge est obsolète # 4047.
- Dépendances:
- Réintroduire le support de compilation c-ares partagé # 5775.
- V8 mis à jour à la version 5.0.71.35 # 6372.
- DNS:
- Ajoutez l'API dns.resolvePtr () pour interroger les enregistrements DNS PTR n ° 4921.
- Domaines:
- Effacer la pile quand aucun gestionnaire d'erreur # 4659.
- Événements:
- L'objet EventEmitter.prototype._events n'hérite plus d'Object.prototype # 6092.
- Les méthodes EventEmitter.prototype.prependListener () et EventEmitter.prototype.prependOnceListener () ont été ajoutées # 6032.
- Système de fichiers:
- Les méthodes fs.realpath () et fs.realpathSync () ont été mises à jour pour utiliser une implémentation plus efficace basée sur libuv. Cette modification inclut la suppression de l'argument de cache et la méthode peut générer de nouvelles erreurs # 3594.
- FS apis peut maintenant accepter et renvoyer des chemins en tant que tampons # 5616.
- Amélioration de la gestion des erreurs et de la vérification des types # 5616, # 5590, # 4518, # 3917.
- L'interface de chaîne de caractères fs.read est obsolète # 4525.
- HTTP:
- 'clientError' peut maintenant être utilisé pour retourner des erreurs personnalisées depuis un serveur HTTP # 4557.
- Modules:
- Le répertoire actuel est désormais prioritaire pour les recherches locales # 5689.
- Les liens symboliques sont conservés lorsque des modules n ° 5950 sont requis.
- Net:
- Les indicateurs DNS ne définissent plus implicitement # 6021.
- Amélioration de la gestion des erreurs et de la vérification du type # 5981, # 5733, # 2904.
- OS X:
- MACOSX_DEPLOYMENT_TARGET a été bousculé jusqu’à 10.7 # 6402.
- Chemin:
- Vérification de type améliorée # 5348.
- Processus:
- Présentez l’API d’avertissements de processus n ° 4782.
- Lancez une exception lorsque la non-fonction est transmise à nextTick # 3860.
- Querystring:
- L'objet renvoyé par querystring.parse () n'hérite plus de Object.prototype # 6055.
- Readline:
- Les informations sur les clés sont émises inconditionnellement # 6024.
- L’historique peut maintenant être explicitement désactivé # 6352.
- REPL:
- L’affectation à _ émettra un avertissement # 5535.
- Les expressions ne seront plus terminées quand eval échoue # 6328.
- Minuteurs:
- Échec tôt lorsque le rappel n’est pas une fonction # 4362.
- Streams:
- null est désormais un bloc invalide à écrire en mode objet # 6170.
- TLS:
- Renommez 'clientError' en 'tlsClientError' # 4557.
- SHA1 utilisé pour sessionIdContext # 3866.
- TTY:
- Le wrapper setRawMode précédemment obsolète est supprimé # 2528.
- URL:
- Le nom d'utilisateur et le mot de passe seront supprimés par url.resolve () si l'hôte change # 1480.
- Util:
- Modifications de la mise en forme de l'objet d'erreur # 4582.
- La méthode util._extend () est obsolète # 4903
- La méthode util.log () est obsolète # 6161.
- Windows:
- Windows XP et Vista ne sont plus pris en charge # 5167.
- Zlib:
- Plusieurs améliorations ont été apportées aux traitements Zlib # 5883 et # 5707.
Configuration requise :
- Python
Commentaires non trouvées