Przejdź do treści

Typy modułów

Moduły w Node.js możemy podzielić na trzy główne rodaje:

  • Moduły lokalne (app modules)
  • Moduły podstawowe (core modules)
  • Moduły zewnętrzne (libraries)

Moduły lokalne

Moduły lokalne (app modules) - moduły, które wydziela programista, podczas tworzenia aplikacji - dotyczą one głównie funkcjonalności danej aplikacji, ich struktura jest zależna od programisty.

Najprostszy z przykładów, który omówiłem przy okazji Czym jest moduł?:

accountancy.js
1
2
3
4
module.exports = {
  grossPrice: (netPrice, vatRate) => { /* ... */ },
  netPrice: (grossPrice, vatRate) => { /* ... */ }
};

Dołączanie lokalnych modułów odbywa się za pomocą wskazania ścieżki.

Wykorzystać można ścieżkę bezwzględną (rozpoczęta znakiem: /) lub relatywną (rozpoczęta znakami: ./ lub ../), tak aby z pliku A doprowadzić do pliku B - uwzględniając przemieszczanie się w strukturze katalogowej.

app.js
1
2
3
4
5
6
7
8
// moduł znajdujący się w tym samym folderze co plik app.js:
require('./accountancy.js');

// moduł znajdujący się w zagłębionej strukturze katalogowej względem pliku app.js:
require('./sciezka/do/modulu/accountancy.js');

// moduł znajdujący się powyżej lokalizacji pliku app.js:
require('./../folder/wyzej/accountancy.js');

Pamiętaj, że początkową lokalizacją od której mamy odniesienie, jest plik w którym zamieszczamy require. Dla przykładu, jeśli nasz plik znajduje się w folderze src/core/ pod nazwą app.js to wszystkie wywołania require() znajdujące się w tym pliku, mają swój początek w folderze src/core/.

Pliki JSON

Za pomocą tego mechanizmu, możemy również załadować zawartość pliku w formacie JSON:

require('./sciezka/do/pliku/products.json');

Moduły podstawowe

Moduły podstawowe (core modules) - moduły wbudowane w Node.js umożliwiają m.in. operacje na plikach (fs), zarządzanie procesem aplikacji (process), informacje na temat systemu operacyjnego (os) czy też tworzenie własnego serwera HTTP (http).

Moduły te są opisane w dokumentacji API Node.js. Ich kod źródłowy można również podejrzeć w repozytorium Node.js.

W tabeli poniżesz zamieszczam moduły z którymi najczęściej pracowałem:

Moduł Opis
buffer Praca na sekwencji bajtów o stałej długości.
console Mechanizm prostego debuggowania za pomocą wyświetlania danych, podobny do console znanego w przeglądarkach.
events Wysyłanie zdarzeń i reagowanie na przechwycone zdarzenia.
fs Interakcja z systemem plików - tworzenie plików, katalogów, zarządzanie systemem plików.
http Obsługa protokołu HTTP. Tworzenie serwera HTTP i obsługa żądań oraz odpowiedzi.
os Dostęp do informacji związanych z systemem operacyjnym.
process Zarządzanie procesem aplikacji.
stream Obsługa strumieni danych.

Przykład użycia jest bardzo prosty:

Architektura procesora:
1
2
3
4
5
// importujemy moduł podając jego nazwę
const os = require('os');

// wywołujemy potrzebne operacje
console.log(os.arch());

Po uruchomieniu pliku na ekranie pojawi się informacja o architekturze procesora. Jedna z wartości: arm, arm64, ia32, mips, mipsel, ppc, ppc64, s390, s390x, x32, lub x64.

Moduły zewnętrzne

Moduły zewnętrzne (libraries) - moduły tworzone i udostępniane przez osoby zewnętrzne. Jest to na przykład: Express, Winston, Knex. Wspomagają programistę przy często powtarzanych operacjach, dając pełną implementację oraz możliwość wykorzystania nie raz skomplikowanych operacji, za pomocą przyjaznego interfejsu biblioteki.

Aby zainstalować bibliotekę zewnętrzną najczęściej wykorzystuje się podstawowy menadżer pakietów NPM. Służy do tego polecenie:

npm i [nazwa biblioteki]

Spróbuj pobrać framework Express:

npm i express

Po wykonaniu tej operacji warto spojrzeć do folderu node_modules bo to w nim, zostały umieszczone wszelkie niezbędne pliki aby w pełni korzystać z wymaganej biblioteki. Ku zaskoczeniu widać, że pobrano nie tylko samą bibliotekę, którą chcieliśmy, ale taże biblioteki, które są niezbędne do jej działania.

Więcej na sam temat folderu node_modules, NPM oraz importowania modułów znajdziesz na kolejnych podstronach.