Node.js – wprowadzenie
Node.js jest środowiskiem, w którym możemy uruchomić aplikacje JavaScript. Oznacza to, że teraz nasz kod JS uruchomimy nie tylko za pomocą przeglądarki internetowej, ale również bez niej. Node.js używa silnika V8, który został napisany przez firmę Google i zaimplementowany w jego przeglądarkę internetową tj. Chrome. Platforma ta powstała w 2009r., a jej twórcą jest Ryan Dahl.
Główną zaletą Node.js jest jego wydajność. Dzięki zastosowaniu rozwiązań asynchronicznych i sterowaniu zdarzeniami potrafi obsłużyć dużo więcej zapytań niż popularny Apache mimo, że działa jednym wątku! Na razie nie będziemy się zagłębiać w ten temat zajmijmy się stworzeniem HelloWorld w Node.js!
Instalacja Node.js
Instalacja platformy jest niezwykle prosta – wystarczy przejść na stronę projektu tj nodejs.org i pobrać odpowiednie pliki. Możemy pobrać wersję z installer-em (Windows i macOS) oraz pliki binarne czy źródła. Do wyboru mamy wersję LTS (ang. Long Term Support) czyli taką, która została dobrze przetestowana przez społeczność i nie powinna sprawiać problemów (stable) oraz wersję, którą obecnie społeczność rozwija.
Po instalacji odpalamy terminal (wiersz poleceń) i za pomocą poniższej komendy sprawdzamy czy wszystko działa.
node -v
Jeśli zamiast informacji o wersji Twojego Node.js widzisz błąd to możliwe, że instalacja nie przebiegła pomyślnie. Jeśli używasz Windowsa możliwe, że będziesz musiał dodać do zmiennej środowiskowej adres wskazujący na instalację Node.js.
Interfejs REPL
Interfejs REPL (Read-Eval-Print-Loop) to nic innego jak środowisko, które możemy odpalić w terminalu (wierszu poleceń) kod JS. Można to porównać do konsoli (ang. Console) w przeglądarce internetowej. Wystarczy, że uruchomimy poniższy kod:
node
Zauważyłeś za pewne, że teraz pojawił się znak większości (strzałka), możesz już napisać swój JS i potwierdzić enterem. Jeśli chcesz poznać komendy jakie są dostępne w REPL to wystarczy, że przejrzysz dokumentację. Możesz również obejrzeć poniższy filmik, który na pewno wiele Ci wyjaśni.
NPM
NPM jest manager-em pakietów Node.js czyli zbiorem małych (a nawet b. dużych) paczek, które mogą być częścią naszej aplikacji. Obecnie jest dostępnych blisko 280tyś modułów, a ich liczba zwiększa się z dnia na dzień.
Jednym z najważniejszych funkcjonalności NPM jest sprawdzanie zależności między poszczególnymi pakietami i dogrywanie wszystkich niezbędnych elementów (w zasadzie jest to główne zadanie managera pakietów).
NPM jest instalowany razem z Node.js, więc jeśli podczas instalacji wszystko poszło ok to po wpisaniu poniższej komendy ponwnieneś zobaczyć jaką wersję NPM posiadasz.
npm -v
Plik package.json
Zanim napiszę o tym jak pobierać pakiety za pomocą NPM trzeba jeszcze powiedzieć trochę o pliku package.json, który powinniśmy stworzyć podczas tworzenia aplikacji. Znajduję się on w katalogu głównym naszego projektu i przechowuje o nim informacje. Ważne jest też to, że przechowuje informacje o pakietach jakie mają być pobrane za pomocą NPM.
Treść przykładowego pliku package.json możesz zobaczyć poniżej:
{ "name": "helloword", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "browser-sync": "^2.17.3", "gulp": "^3.9.1", "gulp-autoprefixer": "^3.1.1", "gulp-plumber": "^1.1.0", "gulp-sass": "^2.3.2" } }
Jeśli chcesz dowiedzieć się co oznacz każdy z wierszy to zachęcam Cię do odwiedzenia dokumentacji package.json.
Package.json za pomocą init
Możesz automatycznie utworzyć ten swój plik – wystarczy, że w terminalu w katalogu głównym projektu uruchomisz komendę init:
npm init
Następnie wprowadzisz odpowiednie informacje i potwierdzisz enterem. To spowoduje utworzenie pliku. Oczywiście w każdej chwili będziesz mógł edytować te dane.
Korzystanie z NPM
Jeśli mamy już plik package.json możemy pobrać paczki, które są nam potrzebne. Wspomniany plik nie jest niezbędny, ale bardzo przydatny.
Gdy mamy już wybrany moduł (zazwyczaj można wyszukać takowy w Google np. npm hello world) to na stronie npm znajdziemy informacje o sposobie jego używania.
Instalacja modułu
Jak już za pewne przeczytaliście instalację rozpoczniemy dzięki komendy install, my jednak nie użyjemy parametru -g, który instaluje moduł globalnie (czyli tam gdzie mamy Node.js) co oznacza, że możemy korzystać z niego z każdej lokalizacji.
Zrobimy to lokalnie i dodatkowo dodamy parametr –save. Użytkonicy systemów *unix-owych będę musieli poprzedzić to polecenie komendą sudo.
npm install hello-world-npm --save
Po uruchomieniu poniższego polecenia NPM pobrał pakiet i wrzucił go do katalogu node_modules (który sam utworzył). Równocześnie dzięki –save informacje o instalacji zostały dopisane do pliku package.json, który wygląda obecnie w taki sposób:
{ "name": "hello-world", "version": "1.0.0", "description": "", "main": "index.js", "dependencies": { "hello-world-npm": "^1.1.1" }, "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }
Dzięki temu zabiegowi nie będziemy musieli kopiować katalogu node_modules za każdym razem, gdy będziemy udostępniać nasz projekt (choćby na github-ie) tylko wystarczy komenda npm install, która sprawdzi zawartość pliku package.json i pobierze wszystkie niezbędne moduły.
npm install
Czas na HelloWorld!
Posiadamy już na dysku niezbędny moduł (oczywiście może być ich więcej niż jeden) teraz spróbujmy zrobić z niego użytek. Tworzymy plik index.js i wpisujemy do niego poniższy kod:
//przypisujemy moduł do zmiennej var hl = require('hello-world-npm'); //uruchamiamy metodę helloWorld() var text = hl.helloWorld(); //wyświetlamy console.log(text);
Teraz w terminalu uruchamiamy nasz plik za pomocą jednej linii:
node index.js
To wszystko! W terminalu powinieneś zobaczyć napis Hello World