Node.js dla początkujących – pierwszy program w konsoli.

Node.js to konsolowe środowisko uruchomieniowe dla programów napisanych w JavaScripcie. Powstało ono na silniku Chrome V8 i dzięki niemu, możemy uruchamiać JavaScriptowe programy poza przeglądarką! Jest to coś znacznie więcej niż tylko „serwer w JavaScripcie” jak często podsumowuje się Node’a.

W dzisiejszym poście napiszę prosty program działający w linii komend. Oczywiście użyję w tym celu Node’a. Nie będzie nic o asynchroniczności, serwerach czy modułach. Wprowadzenie do Node’a zacznę małymi kroczkami. Stworzona tu aplikacja pomoże przywyknąć do tego środowiska i będzie delikatnym wprowadzeniem do bardziej zaawansowanych zagadnień.

Node.js dla początkujących

Aby móc używać Node’a należy go najpierw zainstalować. Instalkę pograć można z głównej strony projektu. Tam też znajduje się instrukcja jak przeprowadzić instalację (nic skomplikowanego 🙂 ).

Kolejny krok to odpalenie linii komend. W windowsie będzie to program cmd a na systemach unixowych terminal. Następnie wystarczy wpisać node aby uruchomić to środowisko.

W terminalu można teraz robić to samo co w konsoli w przeglądarce internetowej. W wyniku wpisywania poleceń w javascripcie użytkownik otrzyma spodziewane odpowiedzi:

node dla poczatkujacych terminal

Jednak pomimo tego, że wygląda to do konsoli przeglądarki, nie jest to to samo środowisko. W przeglądarce globalnym obiektem jest window. Takie deklaracje, będą w niej równe:

W środowisku Node odwołanie do obiektu window spowoduje błąd, ponieważ taki obiekt nie istnieje. Zamiast tego Node posiada obiekt o nazwie global. To jest nadrzędna przestrzeń nazw poza przeglądarką.

Kolejnym obiektem przeglądarki, który jest często używany jest document. Jak łatwo się domyślić, on również nie jest dostępny w Node. Zamiast niego, Node udostępnia obiekt process, czyli aktualny proces komputera. Ten obiekt, może być bardzo przydatny w aplikacjach konsolowych.

Ale gdyby Node był tylko konsolą, nie na wiele by się zdał. Na szczęście, można w nim uruchamiać programy, zapisane w plikach JavaScriptowych. Na przykład plik hello.js o takiej zawartości:

Ten plik uruchamia się z konsoli wpisując node hello. Nie trzeba dodawać rozszerzenia pliku. Oto wynik:

node dla poczatkujacych terminal2

jak widać, w takim wypadku nie należy uruchamiać konsoli node’a. Pliki JavaScript można odpalać bezpośrednio z linii komend. Najpierw wpisuję polecenie node, a po spacji ścieżkę prowadząca do pliku, który chcę odpalić. Ścieżka jest relatywna do mojej aktualnej lokacji w strukturze plików.

Ok skoro już wiadomo, jak działają podstawy, czas stworzyć prostą aplikację działającą w linii komend komputera. Ta aplikacja to uproszczona wersja listy, do której użytkownik, będzie mógł dodawać i usuwać elementy. Będzie on mógł również wyświetlić aktualnie znajdujące się na liście elementy.

Oto treść programu:

Już pierwsza linijka jest typowo „Node’wa”. Funkcja require, służy do załadowania dodatkowych modułów. Mogą to być zarówno moduły napisane przez innych programistów, jak i dodatkowe funkcje Node’a, które nie są dostępne od razu w procesie. Moduły opiszę szczegółowo w innym poście, póki co wystarczy wiedzieć, że pierwsza linijka, dodaje do mojego programu obiekt readline, który normalnie nie byłby dostępny. To coś jak include w językach c/c++.

Readline służy do wczytywania do programu wpisanych przez użytkownika w konsole wiadomości. W drugiej linijce tworzę obiekt rl, do którego przypisuję interfejs readline. Interfejs jest czymś jak kontekst dla płótna. Dzięki niemu będę mógł komunikować się z procesem. Podczas tworzenia interfejs otrzymuje dwa argumenty, pierwszy to wejście dla danych a drugi to wyjście. Korzystam z obiektu process, który ma zdefiniowane pola standardowego wejścia i wyjścia i przekazuje je interfejsowi readline. W praktyce oznacza to, że interfejs będzie czytał z klawiatury i wypisywał informacje w konsoli 🙂 .

Następnie deklaruję tablicę data. W niej będę przechowywał wszystkie dane listy.

Kolejne dwie linijki to wywołanie metod interfejsu readline: setPrompt oraz prompt. Pierwsza przyjmuje jeden argument, łańcuch znaków. Ten łańcuch będzie wykorzystywany jako znak zachęty do pisania w konsoli. Metoda prompt wyświetla ten znak.

Pozostała część kodu jest w funkcji zwrotnej, wywoływanej przez zdarzenie line. Zdarzenie to wykrywane jest przez interfejs readline i oznacza wpisanie przez użytkownika, czegoś w konsole. Funkcja zwrotna jako argument otrzymuje wpisany tekst.

Reszta to już standardowy JS. Pierwsze słowo wpisanego tekstu, ma być poleceniem dla programu. Odcinam je i przypisuje do osobnej zmiennej. Następnie konstrukcją switch uruchamiam odpowiednie dla danego polecenia zachowanie. Jeżeli polecenie nie jest znane, wyświetla się odpowiedni komunikat.

Przykładowe działanie programu w konsoli wyglądać będzie tak:

node dla poczatkujacych terminal3

Jak widać wszystko śmiga idealnie 🙂

Pierwszy program w Node.js napisany. W kolejnym poście opisze dokładniej jak działają moduły i jak można je wykorzystywać. Jeżeli nie chcesz przeoczyć tego posta, zachęcam do polubienia mojej strony na facebooku. Zawsze zamieszczam tam informacje o nowościach na blogu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *