Node.js: Różnice pomiędzy wersjami

Linia 1: Linia 1:
 
''Node.js'' to otwarte, wieloplatformowe środowisko programistyczne.
 
''Node.js'' to otwarte, wieloplatformowe środowisko programistyczne.
  
=== Wstępna konfiguracja domeny ===
+
=== Wstępna konfiguracja ===
  
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:
+
Do uruchomienia aplikacji opartej ''Node.js'' należy najpierw zadbać o prawidłową konfigurację wstępną pod Node.js. 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 [[WWW|strona WWW]] ze wskazaniem typu Node.js.
+
* Została dodana [[WWW|strona WWW]] ze wskazaniem typu Node.js w wybranej przez siebie wersji.
 +
* Zostały wykonane polecenia:
 +
<syntaxhighlight lang="bash">
 +
mkdir ~/.npm-global
 +
mkdir ~/bin
 +
npm config set prefix '~/.npm-global'
 +
echo 'export PATH=~/.npm-global/bin:~/bin:$PATH ' >> $HOME/.bash_profile && source $HOME/.bash_profile</syntaxhighlight>
  
 
=== Wersje Node.js ===
 
=== Wersje Node.js ===
Linia 16: Linia 22:
 
* v4.8.2 (domyślna) - binarki <code>node</code> i <code>npm</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>.  
 
* 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:
 
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
+
<syntaxhighlight lang="bash">
ln -fs /usr/local/bin/node6 ~/bin/node && ln -fs /usr/local/bin/npm6 ~/bin/npm
+
ln -fs /usr/local/bin/node6 ~/bin/node && ln -fs /usr/local/bin/npm6 ~/bin/npm && source $HOME/.bash_profile
echo 'export PATH=$HOME/bin:$PATH' >> $HOME/.bash_profile && source $HOME/.bash_profile</syntaxhighlight>
+
</syntaxhighlight>
  
Aby ponownie zmienić wersję Node.js wystarczy wykonać polecenie:
+
Aby ponownie zmienić wersję Node.js wystarczy wykonać polecenie ze zmianą cyfr:
<syntaxhighlight lang="bash">ln -fs /usr/local/bin/node7 ~/bin/node && ln -fs /usr/local/bin/npm7 ~/bin/npm</syntaxhighlight>
+
<syntaxhighlight lang="bash">
 
+
ln -fs /usr/local/bin/node7 ~/bin/node && ln -fs /usr/local/bin/npm7 ~/bin/npm && source $HOME/.bash_profile
Gdzie jak wcześniej cyfra przy binarkach node, npm wskazuje na ustawianą wersję Node.js.
+
</syntaxhighlight>
  
 
{{Warning|1= Na początek listopada 2017 planowane jest zakończenie wsparcia dla Node.js v0.12.X oraz 7.9.X. Nadal będzie można używać tych wersji ale skompilowanych lokalnie własnoręcznie przez użytkownika na koncie.}}
 
{{Warning|1= Na początek listopada 2017 planowane jest zakończenie wsparcia dla Node.js v0.12.X oraz 7.9.X. Nadal będzie można używać tych wersji ale skompilowanych lokalnie własnoręcznie przez użytkownika na koncie.}}
Linia 35: Linia 42:
 
=== Moduły Node.js ===
 
=== 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]].
+
Aby zainstalować wybrany moduł Node.js należy skorzystać z polecenia <code>npm install-g ''nazwa_modułu''</code>. Moduły posiadające binarki zaleca się instalować w katalogu domowym. Aby móc z nich skorzystać należy koniecznie włączyć [[binexec]] i przelogować się.
  
 
{{Warning|Aby niektóre moduły npm skompilowały się poprawnie należy ustawić następujące zmienne:
 
{{Warning|Aby niektóre moduły npm skompilowały się poprawnie należy ustawić następujące zmienne:
Linia 44: Linia 51:
 
export CXX=g++48</nowiki>
 
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 ====
 
==== Przygotowanie aplikacji Node.js ====
Linia 63: Linia 67:
 
==== Istniejący projekt Node.js ====
 
==== 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>.
+
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 ===
  
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>.
+
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 ===
 
=== Pliki statyczne ===

Wersja z 13:14, 29 paź 2017

Node.js to otwarte, wieloplatformowe środowisko programistyczne.

Wstępna konfiguracja

Do uruchomienia aplikacji opartej Node.js należy najpierw zadbać o prawidłową konfigurację wstępną pod Node.js. 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 przez siebie wersji.
  • Zostały wykonane polecenia:
mkdir ~/.npm-global
mkdir ~/bin
npm config set prefix '~/.npm-global' 
echo 'export PATH=~/.npm-global/bin:~/bin:$PATH ' >> $HOME/.bash_profile && source $HOME/.bash_profile

Wersje Node.js

Na serwerach MyDevil udostępniamy 4 wersje Node:

  • v8.4.0 - binarki node8 i npm8
  • v7.9.0 - binarki node7 i npm7
  • v6.9.4 - binarki node6 i npm6
  • v4.8.2 (domyślna) - binarki node i npm
  • v0.12.18 - binarki node012 i npm012.


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:

ln -fs /usr/local/bin/node6 ~/bin/node && ln -fs /usr/local/bin/npm6 ~/bin/npm && source $HOME/.bash_profile

Aby ponownie zmienić wersję Node.js wystarczy wykonać polecenie ze zmianą cyfr:

ln -fs /usr/local/bin/node7 ~/bin/node && ln -fs /usr/local/bin/npm7 ~/bin/npm && source $HOME/.bash_profile

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-g nazwa_modułu. Moduły posiadające binarki zaleca się instalować w katalogu domowym. Aby móc z nich skorzystać należy koniecznie włączyć binexec i przelogować się.

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 ~/.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,

Odnośniki zewnętrzne