Node.js
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.
Wersje Node.js
Na serwerach MyDevil udostępniamy 4 wersje Node:
- v8.4.0 - binarki
node8
inpm8
- 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.
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.
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 ~/.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,