Samouczek NPM Node.js: Jak tworzyć, rozszerzać i publikować moduły
Moduły Node.js
Moduł w Node.js to logiczna enkapsulacja kodu w pojedynczej jednostce. Zawsze dobrą praktyką programistyczną jest segregowanie kodu w taki sposób, aby był łatwiejszy w zarządzaniu i utrzymaniu do przyszłych celów. W tym miejscu do akcji wkraczają 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.
Co to jest moduł 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óre można wykorzystać w Node js.
Poniżej znajdują się niektóre z popularnych modułów używanych w aplikacji Node js
- Ekspresowe ramy – Express to minimalistyczna i elastyczna platforma aplikacji internetowych Node js, która zapewnia solidny zestaw funkcji dla sieci i MOBILNA aplikacji.
- Gniazdo.io – Socket.IO umożliwia dwukierunkową komunikację opartą na zdarzeniach w czasie rzeczywistym. Moduł ten jest dobry do tworzenia aplikacji opartych na czacie.
- Jadeit – Jade to wysokowydajny silnik szablonów, zaimplementowany za pomocą JAVASCRIPT dla węzła i przeglądarek.
- MongoDB - MongoDB Sterownik Node.js jest oficjalnie obsługiwanym sterownikiem Node.js dla MongoDB.
- Restyfikacja – restify to lekki framework, podobny do express do budowania API REST
- Bluebird – Bluebird to w pełni funkcjonalna biblioteka obietnic, która koncentruje się na innowacyjnych funkcjach i wydajności
Korzystanie z modułów w Node.js
Aby użyć modułów w a node.js aplikacji, 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 ekspresowo
- Powyższe polecenie pobierze niezbędne pliki zawierające „moduły ekspresowe” i zajmie się instalacją
- Po zainstalowaniu modułu, aby móc wykorzystać moduł w aplikacji Node.js należy użyć słowa kluczowego 'require'. To słowo kluczowe to sposób, w jaki Node.js wykorzystuje funkcjonalność modułu do aplikacji.
Spójrzmy na przykład użycia słowa kluczowego „wymagaj”. 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 pierwszej instrukcji używamy słowa kluczowego „require”, aby uwzględnić moduł express. Moduł „ekspresowy” jest zoptymalizowany JAVASCRIPT biblioteka do programowania 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 modułu należy utworzyć obiekt. Tutaj tworzony jest obiekt modułu ekspresowego.
- Po włączeniu modułu za pomocą polecenia „require” i utworzeniu „obiektu” można wywołać wymagane metody modułu express. Tutaj używamy polecenia set, aby ustawić silnik widoku, który służy do ustawienia silnika szablonów używanego w Node.js.
- Tutaj używamy metody nasłuchiwania, aby aplikacja nasłuchiwała na określonym numerze portu.
Uwaga: -(Tylko dla zrozumienia czytelnika; silnik szablonów to podejście do wstrzykiwania wartości do aplikacji poprzez pobieranie danych z plików danych. Ta koncepcja jest dość znana w Angular JS, gdzie nawiasy klamrowe {{ key }} są używane do zastępowania 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.)
Jak utworzyć moduły NPM
Node.js ma możliwość tworzenia niestandardowych modułów i pozwala na dołączenie tych niestandardowych modułów do aplikacji Node.js.
Przyjrzyjmy się prostemu przykładowi, jak możemy utworzyć własny moduł i dołączyć go do głównego pliku aplikacji. Nasz moduł wykona po prostu proste zadanie dodania dwóch liczb.
Wykonajmy poniższe kroki, aby zobaczyć, jak możemy utworzyć moduły i włączyć je do naszej aplikacji.
Poniżej przedstawiono krok po kroku proces tworzenia modułów NPM
Krok 1) Utwórz plik i wklej poniższy kod
Utwórz plik o nazwie „Addition.js” i dołącz poniższy kod. Ten plik będzie zawierał logikę modułu.
Poniżej znajduje się kod, który wejdzie do tego pliku;
var exports=module.exports={}; exports.AddNumber=function(a,b) { return a+b; };
- Słowo kluczowe „exports” 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 tak, aby przyjmować 2 parametry, a i b. Funkcja jest dodawana do modułu „eksport”, aby stała się funkcją publiczną, do której będą mogły uzyskać dostęp inne moduły aplikacji.
- W końcu sprawiamy, że nasza funkcja zwraca wartość dodaną parametrów.
Teraz, gdy utworzyliśmy nasz niestandardowy moduł, który ma funkcjonalność dodawania 2 liczb, nadszedł czas na utworzenie aplikacji, która będzie wywoływać ten moduł.
W kolejnym kroku zobaczymy jak stworzyć aplikację, która będzie wywoływać nasz moduł.
Krok 2) Utwórz plik aplikacji
Utwórz plik o nazwie „app.js”, który będzie 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ć 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.
Wydajność:
- Po uruchomieniu pliku app.js w dzienniku konsoli pojawi się wynik o wartości 3.
- Wynik jest spowodowany tym, że funkcja AddNumber w pliku Addition.js została wywołana pomyślnie, a zwrócona wartość 3 została wyświetlona w konsoli.
Uwaga: – Nie używamy jeszcze „menedżera pakietów Node” do instalacji naszego modułu Addition.js. Dzieje się tak dlatego, że moduł jest już częścią naszego projektu na komputerze lokalnym. Menedżer pakietów Node pojawia się na obrazku, gdy publikujesz moduł w Internecie, co widzimy w kolejnym temacie.
Rozszerzanie modułów w Node.js
Podczas tworzenia modułów istnieje także możliwość rozszerzenia lub dziedziczenia jednego modułu z drugiego.
We współczesnym programowaniu dość powszechne jest budowanie biblioteki wspólnych modułów, a następnie w razie potrzeby rozszerzanie ich funkcjonalności.
Spójrzmy na przykład tego, 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 tworzymy po prostu funkcję, która zwraca ciąg znaków do konsoli. Zwrócony ciąg to „Samouczek Guru99”.
var exports=module.exports={}; exports.tutorial=function() { console.log("Guru99 Tutorial") }
- Moduł eksportu służy do tego, aby jakakolwiek funkcja zdefiniowana w tym pliku mogła być dostępna w innych modułach Node.js
- Tworzymy funkcję o nazwie tutorial, którą można wykorzystać w innych modułach Node.js.
- Po wywołaniu tej funkcji wyświetlamy w konsoli ciąg „Guru99 Tutorial”.
Teraz, gdy stworzyliśmy nasz podstawowy moduł o nazwie Tutorial.js. Nadszedł czas na stworzenie kolejnego modułu, który będzie rozszerzał moduł bazowy.
W następnym kroku sprawdzimy, jak to zrobić.
Krok 2) Następnie stworzymy 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=Tutor PTutor.tutorial(); } } Or var Tutor=require('./Tutorial.js'); exports.NodeTutorial=function() { console.log("Node Tutorial") this.pTutor = function () { var PTutor=Tutor PTutor.tutorial(); } }
Należy pamiętać o następujących kluczowych punktach dotyczących powyższego kodu
- Używamy funkcji „require” w samym pliku nowego modułu. Ponieważ zamierzamy rozszerzyć istniejący plik modułu „Tutorial.js”, musimy go najpierw uwzględnić przed rozszerzeniem.
- Następnie tworzymy funkcję o nazwie „Nodetutorial”. Ta funkcja zrobi 2 rzeczy,
- Wyśle do konsoli ciąg znaków „Node Tutorial”.
- Wyśle ciąg „Guru99 Tutorial” z modułu bazowego „Tutorial.js” do naszego rozszerzonego modułu „NodeTutorial.js”.
- Tutaj wykonujemy pierwszy krok polegający na wysłaniu ciągu znaków do „Node Tutorial” do konsoli.
- Następnym krokiem jest wywołanie funkcji z naszego modułu Tutorial, która wyśle ciąg „Guru99 Tutorial” do pliku 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 code var tut = new localTutor.NodeTutorial(); // Create and save object tut.pTutor(); // Call function on object
Powyższy kod wykonuje następujące rzeczy:
- Nasz główny plik aplikacji wywołuje teraz moduł „NodeTutorial”.
- Wywołujemy funkcję „NodeTutorial”. Po wywołaniu tej funkcji tekst „Node Tutorial” zostanie wyświetlony w dzienniku konsoli.
- Ponieważ rozszerzyliśmy nasz moduł Tutorial.js i udostępniliśmy funkcję o nazwie pTutor. Wywołuje ona również moduł tutorial w module Tutorial.js, a tekst „Guru99 Tutorial” zostanie również wyświetlony na konsoli.
Wyjście:
Ponieważ wykonaliśmy powyższy kod app.js przy użyciu Node, w pliku console.log otrzymamy następujący wynik
- Samouczek węzła
- Samouczek Guru99
Pakiet publikowania NPM (Menedżer pakietów węzłów).
Można opublikować własny moduł do własnego Github magazyn.
Publikując moduł w centralnej lokalizacji, nie jesteś obciążony koniecznością samodzielnej instalacji na każdej maszynie, która tego wymaga.
Zamiast tego możesz użyć polecenia install programu npm i zainstalować opublikowany moduł npm.
Aby opublikować moduł npm, należy wykonać następujące kroki
Krok 1) Utwórz swoje repozytorium na GitHubie (narzędzie do zarządzania repozytorium kodu online). Można go używać do hostowania repozytoriów kodu.
Krok 2) Musisz poinformować swoją lokalną instalację npm o tym, kim jesteś. Oznacza to, że musimy poinformować npm, kto jest autorem tego modułu, jaki jest identyfikator e-mail i adres URL firmy, który jest dostępny i musi być powiązany z tym identyfikatorem. Wszystkie te szczegóły zostaną dodane do Twojego modułu npm, gdy zostanie opublikowany.
Poniższe polecenia ustawiają nazwę, adres e-mail i adres URL autora modułu npm.
npm ustaw init-author-name „Guru99.”
npm ustaw init-author-email „guru99@gmail.com”
npm ustaw init-author-url „http://Guru99.com”
Krok 3) Następnym krokiem jest zalogowanie się do npm przy użyciu danych uwierzytelniających podanych w ostatnim kroku. Aby się zalogować należy użyć poniższego polecenia
npm login
Krok 4) Zainicjuj pakiet — następnym krokiem jest zainicjowanie pakietu w celu utworzenia pliku package.json. Można to zrobić wydając poniższe polecenie
npm init
Kiedy wydasz powyższe polecenie, zostaniesz poproszony o kilka pytań. Najważniejszym z nich jest numer wersji modułu.
Krok 5) Publikuj 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.1 git 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 Node” ma możliwość zarządzania modułami wymaganymi 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 moduły te będą 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ższym stwierdzeniu umożliwia instalację modułów na poziomie globalnym.
- Lista wszystkich pakietów globalnych zainstalowanych na komputerze lokalnym. Można to zrobić, wykonując poniższe polecenie w wierszu poleceńlista npm –globalnaPoniżej znajduje się wynik, który zostanie wyświetlony, jeśli wcześniej zainstalowałeś „moduł ekspresowy” w swoim systemie. Tutaj możesz zobaczyć różne moduły zainstalowane na komputerze lokalnym.
- Instalowanie określonej wersji pakietu — czasami może zaistnieć potrzeba zainstalowania 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 podkreślenie z określoną wersją 1.7.0npm install podkreślenie@1.7.0
- 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śleń do najnowszej wersjipodkreślenie aktualizacji npm
- Wyszukiwanie konkretnego pakietu – Aby sprawdzić, czy konkretna wersja jest dostępna w systemie lokalnym, czy nie, możesz użyć polecenia search programu npm. Poniższy przykład sprawdzi, czy moduł express jest zainstalowany na komputerze lokalnym, czy nie.ekspresowe wyszukiwanie npm
- Odinstalowywanie pakietu – w ten sam sposób, w którym możesz zainstalować pakiet, możesz także odinstalować pakiet. Dezinstalacja pakietu odbywa się za pomocą polecenia dezinstalacji npm. Poniższy przykład pokazuje, jak odinstalować moduł ekspresowynpm odinstaluj ekspresowo
Co to jest plik package.json
Plik „package.json” służy do przechowywania metadane dotyczące konkretnego projektu. Informacje te zapewniają menedżerowi pakietów Node informacje niezbędne do zrozumienia, w jaki sposób projekt powinien być obsługiwany wraz z jego zależnościami.
Pliki package.json zawierają takie informacje, 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 tego, jak wygląda struktura modułu, gdy jest on zainstalowany przez npm.
Poniższy zrzut ekranu przedstawia zawartość pliku modułu express, gdy jest on zawarty w projekcie Node.js. Z migawki widać 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. The ekspresowy@~4.13.1 podaje numer wersji używanego modułu express.
Podsumowanie
- Moduł w Node.js to logiczna enkapsulacja kodu w pojedynczej jednostce. Podział na moduły sprawia, że kod jest łatwiejszy w zarządzaniu i utrzymaniu 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, podkreślenie, 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 zawiera kompletny zestaw poleceń umożliwiających zarządzanie modułami npm w systemie lokalnym, takich jak instalacja, odinstalowywanie, wyszukiwanie itp.
- Plik package.json służy do przechowywania wszystkich informacji o metadanych modułu npm.