Руководство NodeJS Module

View more Tutorials:

1- Что такое NodeJS Module?

Проще говоря, NodeJS Module это библиотека  Javascript, является набором функций (function) объектов и переменных, которые вы можете положить в ваше приложение для использования. Использование  Module помогает упростить кодирование и управлять кодом в вашем приложении. Обычно каждый  module будет написан в отдельном файле.
NodeJS встроил довольно много  Module, имеет много стандартных библиотек для развития вашего приложения. Ниже является список:
Module Описание
assert Предоставляет набор assertion tests (Тест утверждения)
buffer Для рбработки бинарных данных (binary data).
child_process Для запуска дочернего процесса (child process)
cluster Чтобы отделить один процесс (process) на многие процессы.
crypto Содержит криптографические функции OpenSSL (OpenSSL cryptographic functions)
dgram Предоставляет применение (implementation) для UDP sockets
dns Предоставляет функии поиска (lookups) и разрешение (resolution) DNS.
events Для обработки событий (events)
fs Для обработки файла system
http Сделать чтобы Node.js работал как HTTP server.
https Сделать чтобы  Node.js работал как HTTPS server.
net Для создания server и client.
os Предоставляет информацию про операционную систему.
path Для обработки ссылки файла (file paths).
querystring Для обработки URL query strings
readline Для обработки потоков данных (data streams), читаемые построчно (line).
stream Обрабатывает потоки данных (streaming data)
string_decoder Для декодирования (decode) объектов буфера (buffer objects) в string
timers Поставить таймер для выполнения функции Javascript.
tls Для выполнения протоколов TLS & SSL.
tty Предоставляет классы используемые text terminal.
url Помогает парсировать (parse) строки URL (URL strings)
util Предоставляет утилитарные функции (Utility functions).
v8 Получить доступ в информацию V8 JavaScript engine.
vm Компилирует (compile) код JavaScript в виртуальной машине (Virtual machine)
zlib Обрабатывает сжатия или распаковки файлов.
Чтобы использовать определенный  module, используйте функцию  require(moduleName). Например  http это module, который заставляет  NodeJS работать как  HTTP Server.
Удостоверьтесь что вы успешно создали проект  NodeJS. Если нет, то можете просмотреть статью ниже:
На вашем проекте  NodeJS, создайте папку  module-examples для содержания файлов  Javascript, которые вы практиковали в данной статье.
Создайте файл с названием  http-example.js в папке  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);
Откройте окно  CMD и CD к вашей папке проекта, используйте  NodeJS для запуска файла  http-example.js:
node ./module-examples/http-example.js
Откройте браузер и пройдите по ссылке:

2- Создайте свой Module 

В  NodeJS вы можете создать кастомизированный  Module. Module это файл  Javascript, обратите внимание на расположение данного файла, так как оно влияет на то, как вы его используете. Вы имеете 2 способа выбрать расположение данного файла:
  1. Файл Module расположен в папке с названием node_modules (подпапка проекта). Это рекомендуемое расположение.
  2. Файл  Module раположен в вашей определенной папке, не в node_modules.
NodeJS рекомендует вам расположить ваши файлы  Module в папку  node_modules проекта. Погодите, я объясню вам причину почему стоит расположить ваш module в данной папке.
Синтаксис для  export (экспорта) чего-либо в вашем файле  Javascript .
exports = something;

// or:

module.exports = something;

my-first-module.js

Для начала, создайте файл  my-first-module.js в папке  node_modules, и файл  test-my-first-module.js в другой папке.
В данном примере, файл  my-first-module.js имеет много функций (function), но я  export (экспортирую) только функцию  "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);
 
Запустите пример выше:
node ./module-examples/test-my-first-module.js
Для файлов  module расположенных в папке  node_modules его использование очень просто. Вам не нужно волноваться об относительной или абсолютной ссылке.
var myVar = require("module-file-name.js");

// or:

var myVar = require("module-file-name");

my-second-module.js

Далее мы создаем файл  my-second-module.js расположенный в определенной папке, например: node_modules_2.
node_modules_2/my-second-module.js
var COPY_RIGHT = "o7planning";

module.exports = COPY_RIGHT;
Чтобы использовать  module расположенный в другой папке с  node_modules вам нужно использовать относительную ссылку.
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- Export (экспортировать) многие вещи

В одном файле  module может содержаться много функций (function), много переменных (variable), и много классов (class). Данный пример показывает вам способ  export (экспортировать) много вещей в данном файле.
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

View more Tutorials: