Moduł w Node.js to logiczna enkapsulacja kodu w pojedynczej jednostce. Dobrą praktyką programistyczną jest zawsze segregowanie kodu w taki sposób, aby był łatwiejszy w zarządzaniu i utrzymywaniu do przyszłych celów. Tutaj właśnie działają moduły w Node.js.
Ponieważ każdy moduł jest niezależną jednostką z własną zamkniętą funkcjonalnością, można nim zarządzać jako oddzielną jednostką pracy.
W tym samouczku nauczysz się:
- Co to są moduły w Node.js.
- Korzystanie z modułów w Node.js.
- Tworzenie modułów NPM
- Rozszerzanie modułów
- Publikowanie modułów NPM
- Zarządzanie pakietami innych firm za pomocą npm
- Co to jest plik package.json
Co to są moduły w Node.js?
Jak wspomniano wcześniej, moduły w Node js są sposobem na hermetyzację kodu w oddzielnej jednostce logicznej. Na rynku dostępnych jest wiele gotowych modułów, których można używać w Node js.
Poniżej znajduje się kilka popularnych modułów używanych w aplikacji Node js
- Framework Express - Express to minimalna i elastyczna struktura aplikacji internetowych Node js, która zapewnia solidny zestaw funkcji dla aplikacji internetowych i mobilnych.
- Socket.io - Socket.IO umożliwia dwukierunkową komunikację opartą na zdarzeniach w czasie rzeczywistym. Ten moduł jest dobry do tworzenia aplikacji opartych na czacie.
- Jade - Jade to wysokowydajny silnik szablonów zaimplementowany z JavaScript dla węzła i przeglądarek.
- MongoDB - sterownik MongoDB Node.js to oficjalnie obsługiwany sterownik node.js dla MongoDB.
- Restify - restify to lekka struktura, podobna do ekspresowej do tworzenia interfejsów API REST
- Bluebird - Bluebird to w pełni funkcjonalna biblioteka obietnic z naciskiem na innowacyjne funkcje i wydajność
Korzystanie z modułów w Node.js.
Aby używać modułów w aplikacji Node.js, należy je najpierw zainstalować za pomocą menedżera pakietów Node.
Poniższa linia poleceń pokazuje, jak można zainstalować moduł „express”.
npm zainstaluj express
- Powyższa komenda pobierze niezbędne pliki, które zawierają „moduły ekspresowe” i zajmie się również instalacją
- Po zainstalowaniu modułu, aby użyć modułu w aplikacji Node.js, musisz użyć słowa kluczowego „require”. To słowo kluczowe to sposób, w jaki Node.js wykorzystuje do włączenia funkcjonalności modułu do aplikacji.
Spójrzmy na przykład, jak możemy użyć słowa kluczowego „require”. Poniższy przykład kodu „Guru99” pokazuje, jak używać funkcji require
var express=require('express');var app=express();app.set('view engine','jade');app.get('/',function(req,res){});var server=app.listen(3000,function(){});
- W samej instrukcji pierwszej używamy słowa kluczowego „require”, aby dołączyć moduł express. Moduł „express” to zoptymalizowana biblioteka JavaScript do programowania w środowisku Node.js. Jest to jeden z najczęściej używanych modułów Node.js.
- Po dołączeniu modułu, aby móc korzystać z funkcjonalności w module, należy utworzyć obiekt. Tutaj tworzony jest obiekt modułu ekspresowego.
- Po dołączeniu modułu za pomocą polecenia „require” i utworzeniu „obiektu” można wywołać wymagane metody modułu ekspresowego. Tutaj używamy polecenia set, aby ustawić silnik widoku, który jest używany do ustawiania silnika szablonów używanego w Node.js.
Uwaga: - (Tylko dla zrozumienia czytelnika; mechanizm tworzenia szablonów to podejście do wstrzykiwania wartości w aplikacji poprzez pobieranie danych z plików danych. Ta koncepcja jest dość znana w Angular JS, w którym nawiasy klamrowe {{klucz}} są używane do zastępuje wartości na stronie internetowej. Słowo „klucz” w nawiasach klamrowych zasadniczo oznacza zmienną, która zostanie zastąpiona wartością po wyświetleniu strony).
- Tutaj używamy metody Listen to, aby aplikacja nasłuchiwała na określonym numerze portu.
Tworzenie modułów NPM
Node.js ma możliwość tworzenia niestandardowych modułów i umożliwia włączenie tych niestandardowych modułów do aplikacji Node.js.
Spójrzmy na prosty przykład, jak możemy stworzyć własny moduł i dołączyć go do naszego głównego pliku aplikacji. Nasz moduł wykona proste zadanie polegające na dodaniu dwóch liczb.
Wykonajmy poniższe kroki, aby zobaczyć, jak możemy tworzyć moduły i włączać je do naszej aplikacji.
Krok 1) Utwórz plik o nazwie „Addition.js” i dołącz poniższy kod. Ten plik będzie zawierał logikę dla twojego modułu.
Poniżej znajduje się kod, który zostanie umieszczony w tym pliku;
var exports=module.exports={};exports.AddNumber=function(a,b){return a+b;};
- Słowo kluczowe „export” służy do zapewnienia, że funkcje zdefiniowane w tym pliku będą faktycznie dostępne dla innych plików.
- Następnie definiujemy funkcję o nazwie „AddNumber”. Ta funkcja jest zdefiniowana jako przyjmująca 2 parametry, a i b. Funkcja jest dodawana do modułu „eksportu”, aby stała się funkcją publiczną, do której można uzyskać dostęp z innych modułów aplikacji.
- W końcu sprawiamy, że nasza funkcja zwraca wartość dodaną parametrów.
Teraz, gdy stworzyliśmy nasz niestandardowy moduł, który ma funkcję dodawania 2 liczb. Pora stworzyć aplikację, która będzie wywoływać ten moduł.
W następnym kroku zobaczymy, jak stworzyć aplikację, która będzie wywoływać nasz niestandardowy moduł.
Krok 2) Utwórz plik o nazwie „app.js”, który jest głównym plikiem aplikacji i dodaj poniższy kod
var Addition=require('./Addition.js');console.log(Addition.AddNumber(1,2));
- Używamy słowa kluczowego „require”, aby uwzględnić tę funkcjonalność w pliku Addition.js.
- Ponieważ funkcje w pliku Addition.js są teraz dostępne, możemy teraz wywołać funkcję AddNumber. W funkcji przekazujemy 2 liczby jako parametry. Następnie wyświetlamy wartość w konsoli.
Dane wyjściowe :
- Po uruchomieniu pliku app.js w dzienniku konsoli zostanie wyświetlony wynik o wartości 3.
- Wynik jest taki, że funkcja AddNumber w pliku Addition.js została pomyślnie wywołana, a zwrócona wartość 3 została wyświetlona w konsoli.
Uwaga: - Na razie nie używamy „Node Package Manager” do zainstalowania naszego modułu Addition.js. Dzieje się tak, ponieważ moduł jest już częścią naszego projektu na komputerze lokalnym. Menedżer pakietów Node pojawia się na zdjęciu, gdy publikujesz moduł w Internecie, co zobaczymy w następnym temacie.
Rozszerzanie modułów
Podczas tworzenia modułów istnieje również możliwość rozszerzenia lub dziedziczenia jednego modułu z drugiego.
We współczesnym programowaniu dość często tworzy się bibliotekę wspólnych modułów, a następnie w razie potrzeby rozszerza funkcjonalność tych wspólnych modułów.
Spójrzmy na przykład, jak możemy rozszerzyć moduły w Node.js.
Krok 1) Utwórz moduł podstawowy.
W naszym przykładzie utwórz plik o nazwie „Tutorial.js” i umieść poniższy kod.
W tym kodzie po prostu tworzymy funkcję, która zwraca ciąg znaków do konsoli. Zwrócony ciąg to „Guru99 Tutorial”.
var exports=module.exports={};exports.tutorial=function(){console.log("Guru99 Tutorial")}
- Moduł eksportu jest używany, więc każda funkcja zdefiniowana w tym pliku może być dostępna w innych modułach w Node.js.
- Tworzymy funkcję o nazwie tutorial, która może być używana w innych modułach Node.js.
- Gdy ta funkcja jest wywoływana, w konsoli wyświetlamy ciąg znaków „Guru99 Tutorial”.
Teraz, gdy stworzyliśmy nasz podstawowy moduł o nazwie Tutorial.js. Nadszedł czas, aby stworzyć kolejny moduł, który rozszerzy ten moduł podstawowy.
W następnym kroku dowiemy się, jak to zrobić.
Krok 2) Następnie utworzymy nasz rozszerzony moduł. Utwórz nowy plik o nazwie „NodeTutorial.js” i umieść w nim poniższy kod.
var Tutor=require('./Tutorial.js');exports.NodeTutorial=function(){console.log("Node Tutorial")function pTutor(){var PTutor=TutorPTutor.tutorial();}}Orvar Tutor=require('./Tutorial.js');exports.NodeTutorial=function(){console.log("Node Tutorial")this.pTutor = function (){var PTutor=TutorPTutor.tutorial();}}
Zwróć uwagę na następujące kluczowe punkty dotyczące powyższego kodu
- Używamy funkcji „require” w samym nowym pliku modułu. Ponieważ zamierzamy rozszerzyć istniejący plik modułu „Tutorial.js”, musimy go najpierw dołączyć przed rozszerzeniem.
- Następnie tworzymy funkcję o nazwie „Nodetutorial”. Ta funkcja zrobi 2 rzeczy,
- Wyśle do konsoli napis „Node Tutorial”.
- Wyśle ciąg „Guru99 Tutorial” z modułu podstawowego „Tutorial.js” do naszego rozszerzonego modułu „NodeTutorial.js”.
- Tutaj wykonujemy pierwszy krok, aby wysłać łańcuch do "Node Tutorial" do konsoli.
- Następnym krokiem jest wywołanie funkcji z naszego modułu Tutorial, który wyświetli ciąg „Guru99 Tutorial” do console.log.
Krok 3) Utwórz główny plik app.js, który jest głównym plikiem aplikacji i dołącz poniższy kod.
var localTutor=require('./NodeTutorial.js');localTutor.NodeTutorial();localTutor.NodeTutorial.pTutor();Or use this codevar tut = new localTutor.NodeTutorial(); // Create and save objecttut.pTutor(); // Call function on object
Powyższy kod wykonuje następujące czynności;
- Nasz główny plik aplikacji nazywa się teraz modułem „NodeTutorial”.
- Wzywamy funkcję „NodeTutorial”. Po wywołaniu tej funkcji w dzienniku konsoli zostanie wyświetlony tekst „Node Tutorial”.
- Ponieważ rozszerzyliśmy nasz moduł Tutorial.js i udostępniliśmy funkcję o nazwie pTutor. Wywołuje również moduł samouczka w module Tutorial.js, a tekst „Guru99 Tutorial” również zostanie wyświetlony na konsoli.
Wynik:
Ponieważ wykonaliśmy powyższy kod app.js przy użyciu Node, otrzymamy następujące dane wyjściowe w pliku console.log
- Samouczek dotyczący węzła
- Guru99 Tutorial
Publikowanie modułów NPM (Node Package Manager)
Można opublikować własny moduł we własnym repozytorium Github.
Publikując swój moduł w centralnej lokalizacji, nie musisz już instalować się na każdym komputerze, który tego wymaga.
Zamiast tego możesz użyć polecenia instalacji npm i zainstalować opublikowany moduł npm.
Aby opublikować moduł npm, należy wykonać następujące kroki
Krok 1) Utwórz repozytorium na GitHub (narzędzie do zarządzania repozytorium kodu online). Może być używany do hostowania repozytoriów kodu.
Krok 2 ) Musisz powiedzieć lokalnej instalacji npm kim jesteś. Oznacza to, że musimy poinformować npm, kto jest autorem tego modułu, jaki jest identyfikator e-mail i jaki jest dostępny adres URL firmy, który należy skojarzyć z tym identyfikatorem. Wszystkie te szczegóły zostaną dodane do Twojego modułu npm po jego opublikowaniu.
Poniższe polecenia ustawiają imię i nazwisko, adres e-mail oraz adres URL autora modułu npm.
npm ustaw init.author.name „Guru99”.
npm set init.author.email " Ten adres e-mail jest chroniony przed robotami spamującymi. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript."
npm set init.author.url http://Guru99.com
Krok 3) Następnym krokiem jest zalogowanie się do npm przy użyciu poświadczeń podanych w ostatnim kroku. Aby się zalogować, musisz użyć poniższego polecenia
npm login
Krok 4) Zainicjuj swój pakiet - Następnym krokiem jest zainicjowanie pakietu w celu utworzenia pliku package.json. Można to zrobić, wydając poniższe polecenie
npm init
Po wydaniu powyższego polecenia zostaniesz poproszony o kilka pytań. Najważniejszym z nich jest numer wersji Twojego modułu.
Krok 5) Opublikuj w GitHub - Następnym krokiem jest opublikowanie plików źródłowych w GitHub. Można to zrobić, uruchamiając poniższe polecenia.
git add.git commit -m "Initial release"git tag v0.0.1git push origin master --tags
Krok 6) Opublikuj swój moduł - Ostatnim krokiem jest opublikowanie modułu w rejestrze npm. Odbywa się to za pomocą poniższego polecenia.
npm publish
Zarządzanie pakietami stron trzecich za pomocą npm
Jak widzieliśmy, „Menedżer pakietów węzłów” ma możliwość zarządzania modułami, które są wymagane przez aplikacje Node.js.
Przyjrzyjmy się niektórym funkcjom dostępnym w menedżerze pakietów węzłów do zarządzania modułami
-
Instalowanie pakietów w trybie globalnym - moduły można instalować na poziomie globalnym, co w zasadzie oznacza, że te moduły byłyby dostępne dla wszystkich projektów Node.js na komputerze lokalnym. Poniższy przykład pokazuje, jak zainstalować „moduł ekspresowy” z opcją globalną.
npm install express -global
Opcja globalna w powyższej instrukcji umożliwia instalację modułów na poziomie globalnym.
-
Lista wszystkich globalnych pakietów zainstalowanych na komputerze lokalnym. Można to zrobić, wykonując poniższe polecenie w wierszu polecenia
lista npm --global
Poniżej znajduje się wyjście, które zostanie wyświetlone, jeśli wcześniej zainstalowałeś w swoim systemie „moduł ekspresowy”.
Tutaj możesz zobaczyć różne moduły zainstalowane na komputerze lokalnym.
-
Instalowanie określonej wersji pakietu - czasami może być wymagane zainstalowanie tylko określonej wersji pakietu. Gdy znasz nazwę pakietu i odpowiednią wersję, którą należy zainstalować, możesz użyć polecenia npm install, aby zainstalować tę konkretną wersję.
Poniższy przykład pokazuje, jak zainstalować moduł o nazwie underscore z określoną wersją 1.7.0
npm install [email protected]
-
Aktualizacja wersji pakietu - Czasami możesz mieć starszą wersję pakietu w systemie i możesz chcieć zaktualizować ją do najnowszej dostępnej na rynku. W tym celu można użyć polecenia npm update. Poniższy przykład pokazuje, jak zaktualizować pakiet podkreślenia do najnowszej wersji
podkreślenie aktualizacji npm
-
Wyszukiwanie określonego pakietu - Aby sprawdzić, czy dana wersja jest dostępna w systemie lokalnym, czy nie, możesz użyć polecenia wyszukiwania npm. Poniższy przykład sprawdzi, czy moduł ekspresowy jest zainstalowany na komputerze lokalnym, czy nie.
npm search express
-
Odinstalowanie pakietu - to samo, w którym możesz zainstalować pakiet, możesz również odinstalować pakiet. Dezinstalacja pakietu odbywa się za pomocą polecenia dezinstalacji npm. Poniższy przykład pokazuje, jak odinstalować moduł Express
npm odinstaluj express
Co to jest plik package.json
Plik „package.json” służy do przechowywania metadanych dotyczących konkretnego projektu . Te informacje zapewniają menedżerowi pakietów Node informacje niezbędne do zrozumienia, jak projekt powinien być obsługiwany wraz z jego zależnościami.
Pliki package.json zawierają informacje, takie jak opis projektu, wersja projektu w określonej dystrybucji, informacje o licencji i dane konfiguracyjne.
Plik package.json zwykle znajduje się w katalogu głównym projektu Node.js.
Weźmy przykład, jak wygląda struktura modułu, gdy jest on instalowany przez npm.
Poniższy zrzut ekranu przedstawia zawartość pliku modułu ekspresowego, gdy jest on uwzględniony w projekcie Node.js. Z migawki można zobaczyć plik package.json w folderze Express.
Jeśli otworzysz plik package.json, zobaczysz w nim wiele informacji.
Poniżej znajduje się migawka części pliku. Express@~4.13.1 wymienia numer wersji modułu wyraźnej używany.
Podsumowanie
- Moduł w Node.js to logiczna enkapsulacja kodu w pojedynczej jednostce. Rozdzielenie na moduły sprawia, że kod jest łatwiejszy do zarządzania i utrzymania do przyszłych celów
- Na rynku dostępnych jest wiele modułów, których można używać w Node.js, takich jak express, underscore, MongoDB itp.
- Menedżer pakietów węzłów (npm) służy do pobierania i instalowania modułów, których można następnie używać w aplikacji Node.js.
- Można tworzyć niestandardowe moduły NPM, rozszerzać te moduły, a także publikować te moduły.
- Menedżer pakietów Node ma pełny zestaw poleceń do zarządzania modułami npm w systemie lokalnym, takimi jak instalacja, dezinstalacja, wyszukiwanie itp.
- Plik package.json służy do przechowywania wszystkich informacji metadanych dla modułu npm.