Node.js: Różnice pomiędzy wersjami
Linia 1: | Linia 1: | ||
− | '' | + | ''Node.js'' to otwarte, wieloplatformowe środowisko programistyczne. |
− | === Wstępna konfiguracja === | + | === Wstępna konfiguracja domeny === |
+ | |||
+ | Do uruchomienia strony napisanej w ''Node.js'' należy najpierw zadbać o prawidłową konfigurację samej domeny. Przed przystąpieniem do dalszych kroków należy upewnić się, że: | ||
− | |||
* Domena jest prawidłowo dodana i skonfigurowana w naszym systemie [[DNS]]. | * Domena jest prawidłowo dodana i skonfigurowana w naszym systemie [[DNS]]. | ||
− | * Została dodana [[ | + | * Została dodana [[WWW|strona WWW]] ze wskazaniem typu Node.js w wybranej wersji. |
− | * | + | |
+ | === Wersje Node.js === | ||
+ | |||
+ | Na serwerach MyDevil udostępniamy 4 wersje Node.js które są dostępne odpowiednio pod wskazanymi poleceniami: | ||
+ | * v7.9.0 - binarki <code>node7</code> i <code>npm7</code> | ||
+ | * v6.9.4 - binarki <code>node6</code> i <code>npm6</code> | ||
+ | * v4.8.2 (domyślna) - binarki <code>node</code> i <code>npm</code> | ||
+ | * v0.12.18 - binarki <code>node012</code> i <code>npm012</code>. | ||
+ | |||
+ | Zmiana wersji Node.js pod poleceniami node, npm, w przykładzie została ustawiona wersja v6.9.4, aby wskazać inną należy odpowiednio zmienić cyfrę przy node oraz npm: | ||
+ | <syntaxhighlight lang="bash">mkdir ~/bin | ||
+ | ln -fs /usr/local/bin/node6 ~/bin/node && ln -fs /usr/local/bin/npm6 ~/bin/npm | ||
+ | echo 'export PATH=$HOME/bin:$PATH' >> $HOME/.bash_profile && source $HOME/.bash_profile</syntaxhighlight> | ||
+ | |||
+ | Aby ponownie zmienić wersję Node.js wystarczy wykonać polecenie: | ||
+ | <syntaxhighlight lang="bash">ln -fs /usr/local/bin/node7 ~/bin/node && ln -fs /usr/local/bin/npm7 ~/bin/npm</syntaxhighlight> | ||
+ | |||
+ | Gdzie jak wcześniej cyfra przy binarkach node, npm wskazuje na ustawianą wersję Node.js. | ||
+ | |||
+ | {{Warning|1= Planowane jest zakończenie wsparcia dla Node.js v0.12.X, nadal będzie można używać tej wersji ale skompilowanej lokalnie na koncie użytkownika.}} | ||
+ | |||
+ | === Projekt Node.js=== | ||
+ | |||
+ | Głównym katalogiem projektu ''Node.js'' (tj. katalog, w którym znajduje się plik <code class="directory">app.js</code>) musi być folder <code class="directory">/usr/home/''login''/domains/''domena''/public_nodejs</code>. Należy również usunąć plik index.html poleceniem <code>rm /usr/home/''login''/domains/''domena''/public_nodejs/public/index.html</code> | ||
+ | |||
+ | === Moduły Node.js === | ||
− | + | Aby zainstalować wybrany moduł Node.js należy skorzystać z polecenia <code>npm install ''nazwa_modułu''</code>. Moduły posiadające binarki zaleca się instalować w katalogu domowym. Aby móc z nich skorzystać należy włączyć [[binexec]]. | |
− | + | {{Warning|Aby niektóre moduły npm skompilowały się poprawnie należy ustawić następujące zmienne: | |
+ | <nowiki>export C=clang | ||
+ | export CXX=clang++</nowiki> | ||
+ | a w przypadku błędu należy sprawdzić: | ||
+ | <nowiki>export CC=gcc48 | ||
+ | export CXX=g++48</nowiki> | ||
+ | }} | ||
− | + | Aby móc korzystać z binarek dostarczonych z zainstalowanych modułów bez podawania do nich pełnej ścieżki należy w <code class="directory"> .bash_profile</code> dodać linijkę: | |
+ | <syntaxhighlight lang="bash">export PATH="$PATH:$HOME/node_modules/.bin/"</syntaxhighlight> | ||
− | + | ==== Przygotowanie aplikacji Node.js ==== | |
− | + | Nowy projekt Node.js należy utworzyć w katalogu <code class="directory">/usr/home/''login''/domains/''domena''/public_nodejs</code> - najprostszym sposobem utworzenia odpowiedniego projektu jest stworzenie pliku app.js: | |
− | + | <syntaxhighlight lang="javascript">var http = require('http'); | |
+ | var server = http.createServer(function(req, res) { | ||
+ | res.writeHead(200, { 'Content-Type': 'text/plain' }); | ||
+ | res.end("hello world!\n"); | ||
+ | }); | ||
+ | server.listen(3000);</syntaxhighlight> | ||
− | + | Widoczny w ostatniej linii port 3000 nie otworzy socketu na porcie 3000. Phusion Passenger automatycznie wybiera losowy, wolny port, przez który komunikuje się z aplikacją. Rezerwacja portu nie jest potrzebna przy uruchamianiu aplikacji przez typ nodejs. | |
− | |||
− | + | ==== Istniejący projekt Node.js ==== | |
− | |||
− | |||
− | + | Istniejący projekt ''Node.js'' należy umieścić jako katalog <code class="directory">/usr/home/''login''/domains/''domena''/public_nodejs</code>. W przypadku gdy projekt nie nazywa się <code class="directory">public_nodejs</code> należy zmienić jego nazwę. Należy również zmodyfikować plik app.js tak, aby wykonywał aplikację. Zwykle poza odpowiednim require i ustawieniem listen() plik app.js nie potrzebuje zawierać więcej elementów. Trzeba również zainstalować brakujące poleceniem <code>npm install</code>. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | + | === Restart aplikacji === | |
+ | |||
+ | Restart aplikacji ''Node.js'' można wykonać za pomocą naszego [[DevilWEB|panelu zarządzania usługą]] w zakładce [[WWW]], lub przy użyciu polecenia [[Devil|systemu zarządzania kontem Devil]]: <code>devil www restart ''domena''</code>. | ||
+ | |||
+ | === Pliki statyczne === | ||
+ | |||
+ | Wszystkie pliki umieszczone w <code class="directory">/usr/home/''login''/domains/''domena''/public_nodejs/public</code> są serwowane jak pliki statyczne. W tym katalogu najlepiej umieścić wszystkie obrazki, skrypty, style, itp. Żądania do plików znajdujących się w tym folderze nie będą przetwarzane przez Node.js i nie będą obciążać interpretatora. Na przykład plik <code class="directory">/usr/home/''login''/domains/''domena''/public_nodejs/public/robots.txt</code> będzie dostępny pod adresem http://''domena''/robots.txt. | ||
+ | |||
+ | === Zmienne === | ||
+ | |||
+ | Ustawianie zmiennej z poziomu SSH z widocznością dla aplikacji uruchamianej przez Passengera: | ||
+ | * Dopisanie zmiennych do ~/.bash_profile (np. export TESTENV=1). | ||
+ | * Ważne: zmienne nie działają z ~/.bashrc i ~/.shrc | ||
+ | |||
+ | === Logi === | ||
+ | |||
+ | Istnieje możliwość [[Logi#Error_log_Ruby.2C_Python.2C_Nodejs|logowania]] następujących zdarzeń: | ||
+ | * zapisy na stdout, | ||
+ | * zapisy na stderr, | ||
=== Odnośniki zewnętrzne === | === Odnośniki zewnętrzne === | ||
− | |||
− | |||
− | [ | + | * [http://nodejs.org/ Node.js] |
− | [[ | + | * [https://www.phusionpassenger.com/ Phusion Passenger] |
+ | |||
+ | [[Category:Node.js]] |
Wersja z 09:58, 8 wrz 2017
Node.js to otwarte, wieloplatformowe środowisko programistyczne.
Spis treści
Wstępna konfiguracja domeny
Do uruchomienia strony napisanej w Node.js należy najpierw zadbać o prawidłową konfigurację samej domeny. Przed przystąpieniem do dalszych kroków należy upewnić się, że:
- Domena jest prawidłowo dodana i skonfigurowana w naszym systemie DNS.
- Została dodana strona WWW ze wskazaniem typu Node.js w wybranej wersji.
Wersje Node.js
Na serwerach MyDevil udostępniamy 4 wersje Node.js które są dostępne odpowiednio pod wskazanymi poleceniami:
- v7.9.0 - binarki
node7
inpm7
- v6.9.4 - binarki
node6
inpm6
- v4.8.2 (domyślna) - binarki
node
inpm
- v0.12.18 - binarki
node012
inpm012
.
Zmiana wersji Node.js pod poleceniami node, npm, w przykładzie została ustawiona wersja v6.9.4, aby wskazać inną należy odpowiednio zmienić cyfrę przy node oraz npm:
mkdir ~/bin ln -fs /usr/local/bin/node6 ~/bin/node && ln -fs /usr/local/bin/npm6 ~/bin/npm echo 'export PATH=$HOME/bin:$PATH' >> $HOME/.bash_profile && source $HOME/.bash_profile
Aby ponownie zmienić wersję Node.js wystarczy wykonać polecenie:
ln -fs /usr/local/bin/node7 ~/bin/node && ln -fs /usr/local/bin/npm7 ~/bin/npm
Gdzie jak wcześniej cyfra przy binarkach node, npm wskazuje na ustawianą wersję Node.js.
Planowane jest zakończenie wsparcia dla Node.js v0.12.X, nadal będzie można używać tej wersji ale skompilowanej lokalnie na koncie użytkownika.
Projekt Node.js
Głównym katalogiem projektu Node.js (tj. katalog, w którym znajduje się plik app.js
) musi być folder /usr/home/login/domains/domena/public_nodejs
. Należy również usunąć plik index.html poleceniem rm /usr/home/login/domains/domena/public_nodejs/public/index.html
Moduły Node.js
Aby zainstalować wybrany moduł Node.js należy skorzystać z polecenia npm install nazwa_modułu
. Moduły posiadające binarki zaleca się instalować w katalogu domowym. Aby móc z nich skorzystać należy włączyć binexec.
Aby niektóre moduły npm skompilowały się poprawnie należy ustawić następujące zmienne:
export C=clang export CXX=clang++
a w przypadku błędu należy sprawdzić:
export CC=gcc48 export CXX=g++48
Aby móc korzystać z binarek dostarczonych z zainstalowanych modułów bez podawania do nich pełnej ścieżki należy w .bash_profile
dodać linijkę:
export PATH="$PATH:$HOME/node_modules/.bin/"
Przygotowanie aplikacji Node.js
Nowy projekt Node.js należy utworzyć w katalogu /usr/home/login/domains/domena/public_nodejs
- najprostszym sposobem utworzenia odpowiedniego projektu jest stworzenie pliku app.js:
var http = require('http'); var server = http.createServer(function(req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end("hello world!\n"); }); server.listen(3000);
Widoczny w ostatniej linii port 3000 nie otworzy socketu na porcie 3000. Phusion Passenger automatycznie wybiera losowy, wolny port, przez który komunikuje się z aplikacją. Rezerwacja portu nie jest potrzebna przy uruchamianiu aplikacji przez typ nodejs.
Istniejący projekt Node.js
Istniejący projekt Node.js należy umieścić jako katalog /usr/home/login/domains/domena/public_nodejs
. W przypadku gdy projekt nie nazywa się public_nodejs
należy zmienić jego nazwę. Należy również zmodyfikować plik app.js tak, aby wykonywał aplikację. Zwykle poza odpowiednim require i ustawieniem listen() plik app.js nie potrzebuje zawierać więcej elementów. Trzeba również zainstalować brakujące poleceniem npm install
.
Restart aplikacji
Restart aplikacji Node.js można wykonać za pomocą naszego panelu zarządzania usługą w zakładce WWW, lub przy użyciu polecenia systemu zarządzania kontem Devil: devil www restart domena
.
Pliki statyczne
Wszystkie pliki umieszczone w /usr/home/login/domains/domena/public_nodejs/public
są serwowane jak pliki statyczne. W tym katalogu najlepiej umieścić wszystkie obrazki, skrypty, style, itp. Żądania do plików znajdujących się w tym folderze nie będą przetwarzane przez Node.js i nie będą obciążać interpretatora. Na przykład plik /usr/home/login/domains/domena/public_nodejs/public/robots.txt
będzie dostępny pod adresem http://domena/robots.txt.
Zmienne
Ustawianie zmiennej z poziomu SSH z widocznością dla aplikacji uruchamianej przez Passengera:
- Dopisanie zmiennych do ~/.bash_profile (np. export TESTENV=1).
- Ważne: zmienne nie działają z ~/.bashrc i ~/.shrc
Logi
Istnieje możliwość logowania następujących zdarzeń:
- zapisy na stdout,
- zapisy na stderr,