Technologia Node.js

Czym jest Node.js?

Node.js to środowisko, które umożli­wia uruchami­an­ie pro­gramów pisanych w języku JavaScript poza przeglą­darką inter­ne­tową, na poziomie ser­w­era. Node.js dzi­ała w opar­ciu o stwor­zony przez Google sil­nik V8, oraz korzys­ta z dużej licz­by dodatkowych mod­ułów, które moż­na wyko­rzysty­wać jako szkiele­ty twor­zonych aplikacji, aby przyspieszyć pro­ces jej tworzenia. Dzię­ki Node.js nawet bard­zo złożone sys­te­my mogą dzi­ałać szy­bko i sprawnie, ponieważ aplikac­je uruchami­ane są na ser­w­erze, a do przeglą­dar­ki wysyłany jest tylko wynik ich pra­cy.

Najwięk­szą zaletą Node.js jest umożli­wie­nie użytkown­ikom wygod­nego i prostego tworzenia zaawan­sowanych pro­gramów, takich jak gry sieciowe (mul­ti­play­er) czy aplikac­je gieł­dowe, które wyświ­et­la­ją dane i aktu­al­iza­c­je w cza­sie rzeczy­wistym. Bard­zo ważnym ele­mentem, przyspiesza­ją­cym pisanie pro­gramów w Node.js, są frame­wor­ki. Jest to rodzaj częs­to bard­zo rozbu­dowanych szkiców aplikacji, które spraw­ia­ją, że nie trze­ba pisać całego kodu pro­gra­mu od pod­staw, a jedynie wystar­czy sko­rzys­tać z już gotowych funkcjon­al­noś­ci, które te szkice ofer­u­ją. Wyko­rzysty­wanie ich możli­woś­ci pozwala skró­cić czas budowa­nia aplikacji, sku­pi­a­jąc się tylko na jej układzie, log­ice i dzi­ała­niu.

Na hostin­gu nazwa.pl zostały zain­stalowane i automaty­cznie skon­fig­urowane frame­wor­ki dla front-endu, baz danych i back-endu. Wybier­a­jąc określoną wer­sję Node.js automaty­cznie kon­fig­urowany jest dostęp do odpowiada­ją­cych jej frame­worków.

Jak włączyć Node.js na hostingu?

Dla domen obsługi­wanych na ser­w­er­ach hostin­gowych w nazwa.pl włączany jest jako domyśl­ny inter­preter PHP. Środowisko Node.js włącza się dla wybranej dome­ny, dokonu­jąc zmi­any właś­ci­wego dla niej inter­pretera w pan­elu Active.admin.

UWAGA! Dla dome­ny będącej jed­nocześnie iden­ty­fika­torem ser­w­era (serverXXXXXX.nazwa.pl) nie ma możli­woś­ci zmi­any rodza­ju inter­pretera. Iden­ty­fika­tor ser­w­era obsługu­je wyłącznie inter­preter PHP. Z inter­pretera Node.js moż­na sko­rzys­tać dla sub­dome­ny utwor­zonej w ramach iden­ty­fika­to­ra w postaci jakas-nazwa.serverXXXXXX.nazwa.pl, gdzie “jakas-nazwa”, to nazwa tej sub­dome­ny.

WIĘCEJ INFORMACJI:   Jak ustal­ić właś­ci­wy pan­el Active.admin?

Aby zal­o­gować się do pan­elu Active.admin, wejdź na stronę https://admin.nazwa.pl/ (1), wpisz iden­ty­fika­tor posi­adanego ser­w­era w polu Nazwa użytkown­i­ka oraz, ustalone przez siebie w Pan­elu Klien­ta, hasło do usłu­gi (2). Po uzu­pełnie­niu danych, kliknij przy­cisk Zaloguj (3).

Jeżeli chcesz zmienić domyśl­ny inter­preter dla swo­jej dome­ny, po zal­o­gowa­niu do pan­elu Active.admin prze­jdź do zakład­ki Dome­nyWykaz domen, zna­jdź na liś­cie domenę tę, dla której zmi­ana ma zostać wyko­nana, i kliknij na jej nazwę.

Po kliknię­ciu na nazwę wybranej dome­ny wyświ­et­lony zostanie for­mu­la­rz jej dome­ny. W sekcji Inter­preter należy zaz­naczyć check­box przy opcji Node.js (1), a następ­nie włączyć lub wyłączyć dodatkowe opc­je pro­gramisty­czne (2). Po wyko­na­niu zmi­an, należy kliknąć przy­cisk Zapisz (3).

Zmi­ana wer­sji inter­pretera, a więc włącze­nie Node.js, możli­wa jest również w chwili dodawa­nia nowej dome­ny do ser­w­era.

Jak zmienić wersję Node.js?

W celu zmi­any wer­sji Node.js należy prze­jść, w pan­elu Active.admin, do zakład­ki Ustaw­ienia i wybrać opcję Ustaw­ienia ser­w­era (1).

W sekcji Kon­fig­u­rac­ja Node.js, zna­j­du­jącej się poniżej ustaw­ień PHP, należy wybrać z listy rozwi­janej właś­ci­wą wer­sję inter­pretera (1) i zapisać zmi­anę.

Co istotne, wer­s­ja Node.js ustaw­ia­nia jest glob­al­nie dla całego ser­w­era. Nie ma możli­woś­ci ustaw­ienia różnych wer­sji dla poszczegól­nych domen, w ramach tego samego ser­w­era. Zmi­ana wer­sji Node.js powodu­je również zmi­anę odpowied­nich dla danej wer­sji inter­pretera dostęp­nych frame­worków.

Jak zrestartować serwer aplikacyjny Node.js?

Po wyko­na­niu zmi­an w aplikacji wyko­rzys­tu­jącej Node.js i umieszcze­niu jej na ser­w­erze, należy wykon­ać jej restart. Restart taki możli­wy jest do wyko­na­nia poprzez dodatkową opcję, widoczną przy adresie dome­ny w pan­elu Active.admin. W tym celu, prze­jdź do zakład­ki Dome­nyWykaz domen, odna­jdź na liś­cie domenę, dla której chcesz wykon­ać restart aplikacji, a następ­nie kliknij odnośnik zrestar­tuj ser­w­er (1) widoczny przy opcji inter­preter: Node.js.

Restart możli­wy będzie również przez CLI (narzędzie Com­mand Line Inter­face), z uży­ciem komendy node­cli. Należy zatem wpisać:

node­cli restart

Kole­jną możli­woś­cią wyko­na­nia restar­tu jest wyko­nanie, poprzez połącze­nie SSH, polece­nia touch na pliku restart/restart.txt. Kat­a­log restart i pusty plik restart.txt należy wcześniej utworzyć w tym kat­a­logu, na który została przekierowana dom­e­na. Restart należy wykon­ać polece­niem:

touch restart/restart.txt

Efekt polece­nia widoczny będzie przy pier­wszym wywoła­niu aplikacji od chwili zapisu pliku restart.txt.

Lista domyślnie dostępnych frameworków Node.js na serwerach nazwa.pl:
  • Express.js — najczęś­ciej wybier­any przy tworze­niu inter­fe­jsów API, swą pop­u­larność zawdz­ięcza doskon­ałej wyda­jnoś­ci, jest skalowal­ny i w pełni kon­fig­urowal­ny;
  • Koa.js — umożli­wia pro­jek­towanie i tworze­nie aplikacji Node.js z więk­szą wyda­jnoś­cią obsłu­gi błędów;
  • Socket.io — frame­work uży­wany do tworzenia aplikacji takich jak chat­bo­ty lub aplikac­je do wideokon­fer­encji;
  • Nest.js – frame­work, który pozwala na tworze­nie skalowal­nych aplikacji ser­werowych;
  • Sails.js — frame­work bard­zo wysok­iego poziomu, pozwala­ją­cy na szy­bką budowę kom­plet­nego back-endu dla aplikacji webowej, obe­j­mu­ją­cy takie kon­cepc­je jak REST, HTTP lub Web­Sock­ets, pozwala­ją­cy na rozwój inter­fe­jsów API;
  • Total.js — frame­work podob­ny do Lar­avel (PHP) czy Djan­go (Python), wyko­rzysty­wany do budowy stron inter­ne­towych, aplikacji e‑commerce czy aplikac­je IoT;
  • Hapi.js — stanowi doskon­ałą plat­for­mę dla dużych i rozpros­zonych zespołów zarządza­ją­cych jed­nocześnie wielo­ma zada­ni­a­mi i świet­nie sprawdzi się w pra­cach pro­jek­towych.

a także: Derby.js, LoopBack.io oraz Adonis.js.

Npm – manager pakietów dla środowiska Node.js

Dodatkowe mod­uły wyko­rzysty­wane przez aplikację Node.js moż­na wgrać na 2 sposo­by:

  • ręcznie na ser­w­er przy uży­ciu pro­tokołu FTP lub SSH;
  • sko­rzys­tać z funkcjon­al­noś­ci npm wykonu­jąc przez SSH polece­nie:

    npmXX install ‑g nazwa_modułu

    gdzie npmXX wpisz nazwę man­agera paki­etów Npm odpowiada­jącego wyko­rzysty­wanej przez Ciebie wer­sji Node.js, np. npm10, npm12, npm14 czy npm15.

Mod­uły ściąg­nięte przez Npm będą domyśl­nie zapisane w kat­a­logu „.node” a w nim:

- kat­a­log „10” (odpowiada­ją­cy wer­sji 10 Node.js, tu będą zapisy­wały się mod­uły dla wer­sji 10)

- kat­a­log „12” (odpowiada­ją­cy wer­sji 12 Node.js, tu będą zapisy­wały się mod­uły dla wer­sji 12)

- kat­a­log „14” (odpowiada­ją­cych wer­sji 14 Node.js, tu będą zapisy­wały się mod­uły dla wer­sji 14)

- kat­a­log „15” (odpowiada­ją­cych wer­sji 15 Node.js, tu będą zapisy­wały się mod­uły dla wer­sji 15)

Projekt Node.js

Kat­a­lo­giem głównym pro­jek­tu Node.js jest kat­a­log w którym zna­j­du­je się plik wykony­wal­ny, czyli plik app.js. Kat­a­log ten to Doc­Root i App­Root — kon­fig­u­racji tej nie moż­na mody­fikować. Staty­czne pli­ki powin­ny być również umieszc­zone w kat­a­logu głównym aplikacji, nie będzie na nie wydzielonej odręb­nej przestrzeni.

Chcąc uru­chomić aplikację przez wier­sz pole­ceń, należy to zro­bić wywołu­jąc właś­ci­wą wer­sję Node.js, np:

node12 app.js
node15 app.js

Przykład:

Dom­e­na: node.js1.server000000.nazwa.pl

Kat­a­log główny pro­jek­tu: /node.js1

Plik wykony­wal­ny w kat­a­logu głównym: app.js

Pros­ta aplikac­ja:

var http = require(‘http’);
http.createServer(function (req, res) {
res.writeHead(200, {‘Con­tent-Type’: ‘text/plain’});
res.end(‘Hello World !’);
}).listen(8080);
Logi aplikacji

Logi dla Phu­sion Pas­sen­ger są zapisy­wane w kat­a­logu /tmp i są dostęp­ne przez SSH.

Table of Contents