|
|
Linia 1: |
Linia 1: |
− | ''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 [[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 === | | === Moduły Node.js === |
| | | |
Linia 62: |
Linia 29: |
| ==== 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 ''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 ===
| |
− | | |
− | * [http://nodejs.org/ Node.js]
| |
− | * [https://www.phusionpassenger.com/ Phusion Passenger]
| |
− | | |
− | [[Category:Node.js]]
| |
Wersja z 11:04, 12 wrz 2017
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
.