Podręcznik

Podstawy Node.js

Importowanie modułów

Podstawowe możliwości środowiska Node.js można rozszerzyć za pomocą tzw. dodatkowych modułów (ang. modules). Można wyróżnić trzy rodzaje modułów:

  • moduły „bazowe”, tzn. dostępne w ramach podstawowej instalacji Node.js,
  • moduły „zewnętrzne”, instalowane m.in. za pomocą Node Package Manager (npm),
  • moduły tworzone własnoręcznie.

Moduły CommonJS

W Node.js powszechnie używane są tzw. moduły CommonJS. Ich importowanie realizowane jest za pomocą instrukcji require, np.:

const os = require('os');  // typowe dla Node.js

Powyższe polecenie skutkuje zaimportowaniem modułu os (od ang. akronimu operating system, system operacyjny).

Ten rodzaj modułów różni się od modułów stosowanych powszechnie w JavaScript poza środowiskiem Node.js, czyli tzw. modułów ECMAScript (ES). Node.js umożliwia również obsługę modułów ES. Importuje się je za pomocą instrukcji import, np.:

import * from module_name;  // powszechne w JavaScript oprócz Node.js

Importowanie różnych rodzajów modułów

Moduły „bazowe” (dostępne od momentu instalacji środowiska Node.js), a także moduły instalowane za pomocą npm, można importować podając samą ich nazwę, np.:

const events = require('events');

Z kolei aby zaimportować moduł stworzony własnoręcznie i zapisany w pliku .js, należy podać względną ścieżkę pliku, np.:

const my_module = require('./my_module.js')
// zakładając, że plik 'my_module.js' znajduje się w tym samym
// folderze, co ten plik, w którym następuje import


Używanie zaimportowanego modułu

Po zaimportowaniu modułu za pomocą polecenia:

const [nazwa_modułu] = require('[nazwa_modułu]');

można korzystać z zawartych w nim funkcji za pomocą poleceń typu:

[nazwa_modułu].[nazwa_funkcji](...)

Przykładowo, w module os znajduje się funkcja version, służąca do pozyskiwania informacji o wersji używanego systemu operacyjnego. Można jej użyć w następujący sposób:

const os = require('os');
console.log(os.version());
Windows 10 Pro

Importowanie wybranych elementów modułu

Przeważnie w importowanym module znajdują się różne funkcje. Jeśli potrzebne są tylko niektóre z nich, można zaimportować wybrane funkcje za pomocą poleceń typu:

const { [nazwa_funkcji_1], [nazwa_funkcji_2], ... } = require('[nazwa_modułu]');

Wówczas z zaimportowanych funkcji można korzystać bez odwoływania się do nazwy modułu. Na przykład:

const { version } = require('os');
console.log(version());  // samo "version", nie "os.version"

Literatura