Руководство NodeJS Module
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 способа выбрать расположение данного файла:
- Файл Module расположен в папке с названием node_modules (подпапка проекта). Это рекомендуемое расположение.
- Файл 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
Pуководства NodeJS
- Введение в NodeJs
- Что такое NPM?
- Руководство NodeJS для начинающих
- Установить редактор Atom
- Установите NodeJS в Windows
- Руководство NodeJS Module
- Концепция Callback в NodeJS
- Создание простого HTTP Server с NodeJS
- Понимание Event Loop в NodeJS
- Руководство NodeJS EventEmitter
- Подключиться к базе данных MySQL в NodeJS
Show More