Pomoc

Node.js

(Przekierowano z Node)

Node.js to otwarte, wieloplatformowe środowisko programistyczne.

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.

Wersje Node.js

Na serwerach MyDevil udostępniamy 4 wersje Node:

  • 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:

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.

  Uwaga!

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.

  Uwaga!

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