Node.js Modules de base


Exemple

Node.js est un moteur Javascript (moteur V8 de Google pour Chrome, écrit en C ++) qui permet d'exécuter Javascript en dehors du navigateur. Bien que de nombreuses bibliothèques soient disponibles pour étendre les fonctionnalités de Node, le moteur est livré avec un ensemble de modules de base intégrant des fonctionnalités de base.

Il y a actuellement 34 modules de base inclus dans Node:

[ 'assert',
  'buffer',
  'c/c++_addons',
  'child_process',
  'cluster',
  'console',
  'crypto',
  'deprecated_apis',
  'dns',
  'domain',
  'Events',
  'fs',
  'http',
  'https',
  'module',
  'net',
  'os',
  'path',
  'punycode',
  'querystring',
  'readline',
  'repl',
  'stream',
  'string_decoder',
  'timers',
  'tls_(ssl)',
  'tracing',
  'tty',
  'dgram',
  'url',
  'util',
  'v8',
  'vm',
  'zlib' ]

Cette liste a été obtenue à partir de l'API de documentation Node https://nodejs.org/api/all.html (fichier JSON: https://nodejs.org/api/all.json ).

Tous les modules de base en un coup d'œil

affirmer

Le module assert fournit un ensemble simple de tests d'assertion pouvant être utilisés pour tester les invariants.

tampon

Avant l'introduction de TypedArray dans ECMAScript 2015 (ES6), le langage JavaScript ne disposait d'aucun mécanisme pour lire ou manipuler des flux de données binaires. La classe Buffer été introduite dans le cadre de l’API Node.js pour permettre l’interaction avec les flux d’octets dans le cadre d’activités telles que les flux TCP et les opérations de système de fichiers.

Maintenant que TypedArray a été ajouté à ES6, la classe Buffer implémente l'API Uin t8Array de manière plus optimisée et adaptée aux cas d'utilisation de Node.js.

c / c ++ _ addons

Node.js Les Addons sont des objets partagés liés dynamiquement, écrits en C ou C ++, qui peuvent être chargés dans Node.js en utilisant la fonction require() , et utilisés comme s’ils étaient un module Node.js ordinaire. Ils servent principalement à fournir une interface entre JavaScript s'exécutant dans les bibliothèques Node.js et C / C ++.

child_process

Le module child_process permet de générer des processus enfant de manière similaire, mais pas identique, à popen (3).

grappe

Une seule instance de Node.js s'exécute dans un seul thread. Pour tirer parti des systèmes multi-core, l'utilisateur voudra parfois lancer un cluster de processus Node.js pour gérer la charge. Le module de cluster vous permet de créer facilement des processus enfants partageant tous des ports de serveur.

console

Le module de console fournit une console de débogage simple, similaire au mécanisme de console JavaScript fourni par les navigateurs Web.

crypto

Le crypto module fournit des fonctionnalités de chiffrement qui comprend un ensemble d'emballages pour le hachage de OpenSSL, HMAC, chiffrement, déchiffrement, signer et vérifier les fonctions.

deprecated_apis

Node.js peut rendre obsolètes les API lorsque: (a) l'utilisation de l'API est considérée comme non sécurisée, (b) une autre API améliorée a été mise à disposition, ou (c) des modifications de l'API sont attendues dans une prochaine version majeure .

dns

Le module dns contient des fonctions appartenant à deux catégories différentes:

  1. Fonctions qui utilisent les fonctionnalités du système d'exploitation sous-jacent pour effectuer la résolution de noms et n'effectuent pas nécessairement de communication réseau. Cette catégorie ne contient qu'une seule fonction: dns.lookup() .
  2. Fonctions qui se connectent à un serveur DNS réel pour effectuer la résolution de noms et qui utilisent toujours le réseau pour effectuer des requêtes DNS. Cette catégorie contient toutes les fonctions du module dns exception de dns.lookup() .

domaine

Ce module est en attente de dépréciation . Une fois qu'une API de remplacement a été finalisée, ce module sera complètement obsolète. La plupart des utilisateurs finaux ne devraient pas avoir de raison d'utiliser ce module. Les utilisateurs qui doivent absolument disposer de la fonctionnalité fournie par les domaines peuvent, pour le moment, compter sur elle, mais doivent s’attendre à devoir migrer vers une solution différente à l’avenir.

Événements

Une grande partie de l'API de base de Node.js est construite autour d'une architecture asynchrone pilotée par des événements idiomatiques dans laquelle certains types d'objets (appelés "émetteurs") émettent périodiquement des événements nommés provoquant l'appel des objets Fonction ("écouteurs").

fs

Les E / S sur fichiers sont fournies par des wrappers simples autour des fonctions POSIX standard. Pour utiliser ce module, require('fs') . Toutes les méthodes ont des formes asynchrones et synchrones.

http

Les interfaces HTTP dans Node.js sont conçues pour prendre en charge de nombreuses fonctionnalités du protocole qui étaient traditionnellement difficiles à utiliser. En particulier, des messages volumineux, éventuellement codés en bloc. L'interface prend soin de ne jamais mettre en mémoire tampon des demandes ou des réponses entières - l'utilisateur peut diffuser des données.

https

HTTPS est le protocole HTTP sur TLS / SSL. Dans Node.js, ceci est implémenté en tant que module séparé.

module

Node.js a un système de chargement de module simple. Dans Node.js, les fichiers et les modules sont en correspondance directe (chaque fichier est traité comme un module distinct).

net

Le module net vous fournit un wrapper réseau asynchrone. Il contient des fonctions pour créer à la fois des serveurs et des clients (appelés flux). Vous pouvez inclure ce module avec require('net'); .

os

Le module os fournit un certain nombre de méthodes utilitaires liées au système d'exploitation.

chemin

Le module path fournit des utilitaires pour travailler avec des chemins de fichiers et de répertoires.

punycode

La version du module punycode intégrée à Node.js est obsolète .

chaîne de requête

Le module querystring fournit des utilitaires pour analyser et formater les chaînes de requête URL.

readline

Le module readline fournit une interface pour lire les données à partir d’un flux lisible (tel que process.stdin ) une ligne à la fois.

repl

Le module repl fournit une implémentation REPL (Read-Eval-Print-Loop) disponible à la fois en tant que programme autonome ou dans d'autres applications.

courant

Un flux est une interface abstraite pour travailler avec des données en continu dans Node.js. Le module de stream fournit une API de base qui facilite la création d'objets qui implémentent l'interface de flux.

Il y a beaucoup d'objets de flux fournis par Node.js. Par exemple, une requête sur un serveur HTTP et process.stdout sont des instances de flux.

string_decoder

Le module string_decoder fournit une API pour décoder les objets Buffer en chaînes de manière à préserver les caractères codés sur plusieurs octets UTF-8 et UTF-16.

minuteries

Le module de timer expose une API globale pour les fonctions de planification à appeler ultérieurement. Comme les fonctions du minuteur sont des globales, il n'est pas nécessaire d'appeler require('timers') pour utiliser l'API.

Les fonctions du minuteur dans Node.js implémentent une API similaire à celle de l'API de temporisation fournie par les navigateurs Web, mais utilisent une implémentation interne différente basée sur la boucle d'événement Node.js.

tls_ (ssl)

Le module tls fournit une implémentation des protocoles TLS (Transport Layer Security) et SSL (Secure Socket Layer) basés sur OpenSSL.

tracé

Trace Event fournit un mécanisme permettant de centraliser les informations de traçage générées par V8, Node core et le code de l'espace utilisateur.

Le suivi peut être activé en passant l' --trace-events-enabled lors du démarrage d'une application Node.js.

tty

Le module tty fournit les classes tty.ReadStream et tty.WriteStream . Dans la plupart des cas, il ne sera pas nécessaire ou possible d'utiliser ce module directement.

dgram

Le module dgram fournit une implémentation des sockets UDP Datagram.

URL

Le module url fournit des utilitaires pour la résolution et l'analyse syntaxique des URL.

util

Le module util est principalement conçu pour répondre aux besoins des API internes de Node.js. Cependant, de nombreux utilitaires sont également utiles pour les développeurs d'applications et de modules.

v8

Le module v8 expose les API spécifiques à la version de V8 intégrée au binaire Node.js.

Remarque : Les API et l'implémentation sont susceptibles d'être modifiées à tout moment.

vm

Le module vm fournit des API pour compiler et exécuter du code dans les contextes de machine virtuelle V8. Le code JavaScript peut être compilé et exécuté immédiatement ou compilé, enregistré et exécuté plus tard.

Remarque : Le module vm n'est pas un mécanisme de sécurité. Ne l'utilisez pas pour exécuter du code non fiable .

zlib

Le module zlib fournit des fonctionnalités de compression implémentées avec Gzip et Deflate / Inflate.