devstory

Le Tutoriel de NodeJS Module

  1. Qu'est-ce que NodeJS Module ?
  2. Créer votre Module
  3. Exporter plusieurs choses

1. Qu'est-ce que NodeJS Module ?

En parlant simplement, le module NodeJS est une bibliothèque Javascript. C'est un ensemble de fonctions (function), d'objets et de variables que vous pouvez utiliser dans vos applications. L'utilisation Module permet de simplifier l'écriture de code et de le gérer dans votre application. Normalement, chaque module sera écrit dans un fichier séparé.
Le NodeJS intègre de nombreux Modules. Il a des bibliothèques standards pour que vous puissiez développer des applications. Voici la liste des modules :
Module
Description
assert
ournit un ensemble des assertion tests (tests d'assertion)
buffer
Pour gérer les données binaires (binary data).
child_process
Pour exécuter un processus enfant (child process)
cluster
Pour diviser un seul processus (process) Node en plusieurs processus
crypto
Pour gérer les fonctions cryptographiques OpenSSL (OpenSSL cryptographic functions)
dgram
Fournit l'implémentation de UDP sockets
dns
Effectuer des recherches (lookups) et des fonctions de résolution (resolution) DNS
events
Pour gérer les événements (events)
fs
Pour gérer le système de fichiers
http
Pour faire Node.js agir comme un HTTP server.
https
Pour faire Node.js agir comme un HTTPS server.
net
Pour créer des server et des client
os
Fournit des informations sur le système d'exploitation
path
Pour gérer des chemins de fichiers (file paths).
querystring
Pour gérer les chaînes de requête de URL
readline
Pour gérer les flux des données (data streams) lisibles une ligne (line) à la fois
stream
Pour gérer les flux des données (streaming data)
string_decoder
Décoder (decode) les objets du tampon (buffer objects) en chaînes
timers
Pour exécuter une fonction Javascript après un nombre donné de temps
tls
Pour implémenter des protocoles TLS & SSL.
tty
Fournit des classes utilisées par text terminal.
url
Pour analyser (parse) les chaînes de URL (URL strings)
util
Pour accéder aux fonctions utilitaires (Utility functions).
v8
Pour accéder aux informations sur le moteur V8 JavaScript engine.
vm
Pour compiler (compile) du code JavaScript dans la machine virtuelle (Virtual machine)
zlib
Pour compresser ou décompresser des fichiers.
Afin d'utiliser un module, utilisez la fonction require(moduleName). Par exemple, http est un module qui oblige NodeJS à fonctionner comme un HTTP Server.
Assurez- vous que vous avez créé un projet NodeJS avec succès. Si non, faites une référencesà la leçon ci-dessous :
Sur votre projet NodeJS, créez un dossier module-examples pour contenir les fichiers Javascript que vous avez pratiqué dans cette leçon.
Créez un fichier baptisé http-example.js dans le dossier module-examples.
http-example.js
var http = require("http");

http.createServer(function(req, res)  {

     res.writeHead(200, {"Content-Type": "text/html"});
     res.write("<h1>Hello World</h1>");
     res.write("<h2>Hello Http</h2>");
     res.end();

}).listen(8080);
Ouvrez des fenêtres CMD et CD pour aller vers le dossier de votre projet. Utilisez le NodeJS pour exécuter le fichier http-example.js :
node ./module-examples/http-example.js
Ouvrez le navigateur et visitez le chemin :

2. Créer votre Module

Dans NodeJS vous pouvez créer un Module personnalisé. Le Module est un fichier Javascript. Merci à noter la location de ce fichier parce qu'elle affecte à la manière que vous l'utiliser. Deux choix de sélection la location de ce fichier proposés :
  1. Le fichier Module est mis dans le répertoir nommé node_modules (Le sous répertoir du projet). Ceci est la location recommandée.
  2. Le fichier Module est mis dans un de vos répertoires, pas dans le node_modules.
Le NodeJS vous recommande de mettre vos fichiers Module dans le dossier node_modules du projet. Attendez une minute, je vous donnerai des explications pourquoi votre module est recommandé à placer dans ce dossier.
La syntaxe de export (exportation) quelque chose dans votre fichier Javascript.
exports = something;

// or:

module.exports = something;
my-first-module.js
Tout d'abord, créez un fichier my-first-module.js dans le dossier node_modules, le fichier test-my-first-module.js dans un autre dossier.
Dans cet exemple, le fichier my-first-module.js contient plusieurs fonctions (function), mais je export (exporte) la fonction "sum".
node_modules/my-first-module.js
subtract = function(a, b)  {
    return a - b;
}

sum = function (a, b)  {
    return a + b;
}

module.exports = sum;
module-examples/test-my-first-module.js
var sum = require("my-first-module.js");

console.log("Sum 100 and 150");

var c = sum(100, 150);

console.log("Value = " + c);
Exécutez l'exemple ci-dessus :
node ./module-examples/test-my-first-module.js
Pour les fichiers module sont mis dans le dossier node_modules dont la manière d'utilisation est très simple. Ce n'est pas la peine de s'intéresser par le chemin relatif ou le chemin absolu.
var myVar = require("module-file-name.js");

// or:

var myVar = require("module-file-name");
my-second-module.js
Puis, nous créons un fichier my-second-module.js mis dans un dossier, par exemple : node_modules_2.
node_modules_2/my-second-module.js
var COPY_RIGHT = "o7planning";

module.exports = COPY_RIGHT;
Afin d'utiliser les module mis dans autres dossiers avec node_modules vous devez utiliser le chemin relatif.
module-examples/test-my-second-module.js
var copyRight
  = require("../node_modules_2/my-second-module.js");

console.log("Copy right: " + copyRight);
node ./module-examples/test-my-second-module.js

3. Exporter plusieurs choses

Un fichier module peut contenir plusieurs fonctions (function), plusieurs variables (variable) et plusieurs classes (class). Cet exemple vous indique comment export (exporter) plusieurs choses dans ce fichier.
node_modules/my-third-module.js
// A variable!!
var COPY_RIGHT = "o7planning";

// A function!!
var multiple = function(a, b)  {

   return a * b;
};

// A class!!
var Person = class {

   constructor(name, age) {
     this.name = name;
     this.age = age;
   }

   showInfo()  {
     console.log("name="+ this.name+", age="+ this.age);
   }
};

// Something to Export!!
var somethingToExport = {
  Person: Person,
  multiple : multiple,
  COPY_RIGHT : COPY_RIGHT
};

// Exprort it!!
module.exports = somethingToExport;
module-examples/test-my-third-module.js
var module3 = require("my-third-module.js");

console.log("Using Person class of module:");

var p = new module3.Person("Smith", 20);

p.showInfo();

console.log(" -- ");
console.log("Using multiple Function of module:");

var c = module3.multiple(20, 5);

console.log("Value= "+ c);

console.log(" -- ");
console.log("Using Variable of module:");

var copyRight = module3.COPY_RIGHT;

console.log("Copy right: " + copyRight);
node ./module-examples/test-my-third-module.js