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

Linia 1: Linia 1:
''Node.js'' to otwarte, wieloplatformowe środowisko programistyczne.
+
''NodeBB'' to otwarty system forum publikowany na licencji GPLv3 napisany w [[Node.js]].  
  
=== 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 ''NodeBB'' 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 [[WWW|strona WWW]] ze wskazaniem typu Node.js w wybranej wersji.
+
* Została dodana [[Strona WWW]] z wskazaniem typu Node.js.
 
+
* Włączono możliwość korzystania z własnego oprogramowania - [[Binexec]].
=== 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]].
+
=== Instalacja ===
  
{{Warning|Aby niektóre moduły npm skompilowały się poprawnie należy ustawić następujące zmienne:
+
Należy ściągnąć najnowszą stabilną wersję ''NodeBB''. Aby to zrobić należy się [[logowanie|zalogować]] na shellu ''MyDevil'' i przejść do katalogu <code class="directory">/usr/home/''login''/domains/''domena''</code>. Następnie trzeba:
<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ę:
+
Skasować folder <code>rm -r public_nodejs</code>  
<syntaxhighlight lang="bash">export PATH="$PATH:$HOME/node_modules/.bin/"</syntaxhighlight>
 
  
==== Przygotowanie aplikacji Node.js ====
+
Ściągnąć repozytorium ''NodeBB'' do folderu docelowego public_nodejs oraz przejść do niego <code><nowiki>git clone -b v1.5.x https://github.com/NodeBB/NodeBB.git public_nodejs && cd public_nodejs </nowiki></code>. 
  
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:
+
Zainstalować zależności <code>npm install --production</code>.
  
<syntaxhighlight lang="javascript">var http = require('http');
+
Utworzyć bazę danych [[MongoDB]] specjalnie dla nodebb
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.
+
Uruchomić w katalogu public_nodejs konfigurację nodebb
 +
<code>./nodebb setup</code> i podać wymagane dane, wybierając mongo jako bazę danych.
  
==== Istniejący projekt Node.js ====
+
<code><pre>URL used to access this NodeBB (http://localhost:4567) domena:4567
 +
Please enter a NodeBB secret ( ... ) [ENTER]
 +
Which database to use (mongo) [ENTER]
  
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>.
+
19/4 13:38:54 [15804] - info: Now configuring mongo database:
 +
Host IP or address of your MongoDB instance (127.0.0.1) mongoX.mydevil.net
 +
Host port of your MongoDB instance (27017) [ENTER]
 +
MongoDB username moYY_ZZZ
 +
Password of your MongoDB database
 +
MongoDB database name (nodebb) moYY_ZZZ
 +
</pre></code>
 +
Następnie pojawi się pytanie o domyślny login administratora NodeBB, hasło oraz adres e-mail, który ma mu być przypisany.
  
=== Restart aplikacji ===
+
Uruchomić przeglądarkę internetową i wejść na stronę forum.
 
 
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 ===
 +
* [https://nodebb.org/ Strona główna NodeBB]
 +
* [https://github.com/NodeBB/NodeBB/releases Dostępne wersje NodeBB]
  
* [http://nodejs.org/ Node.js]
+
[[Kategoria:Node.js]]
* [https://www.phusionpassenger.com/ Phusion Passenger]
+
[[Kategoria:Poradniki]]
 
 
[[Category:Node.js]]
 

Wersja z 10:21, 6 wrz 2017

NodeBB to otwarty system forum publikowany na licencji GPLv3 napisany w Node.js.

Wstępna konfiguracja

Do uruchomienia NodeBB 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 z wskazaniem typu Node.js.
  • Włączono możliwość korzystania z własnego oprogramowania - Binexec.

Instalacja

Należy ściągnąć najnowszą stabilną wersję NodeBB. Aby to zrobić należy się zalogować na shellu MyDevil i przejść do katalogu /usr/home/login/domains/domena. Następnie trzeba:

Skasować folder rm -r public_nodejs

Ściągnąć repozytorium NodeBB do folderu docelowego public_nodejs oraz przejść do niego git clone -b v1.5.x https://github.com/NodeBB/NodeBB.git public_nodejs && cd public_nodejs .

Zainstalować zależności npm install --production.

Utworzyć bazę danych MongoDB specjalnie dla nodebb

Uruchomić w katalogu public_nodejs konfigurację nodebb ./nodebb setup i podać wymagane dane, wybierając mongo jako bazę danych.

URL used to access this NodeBB (http://localhost:4567) domena:4567
Please enter a NodeBB secret ( ... ) [ENTER]
Which database to use (mongo) [ENTER]

19/4 13:38:54 [15804] - info: Now configuring mongo database:
Host IP or address of your MongoDB instance (127.0.0.1) mongoX.mydevil.net
Host port of your MongoDB instance (27017) [ENTER]
MongoDB username moYY_ZZZ
Password of your MongoDB database 
MongoDB database name (nodebb) moYY_ZZZ

Następnie pojawi się pytanie o domyślny login administratora NodeBB, hasło oraz adres e-mail, który ma mu być przypisany.

Uruchomić przeglądarkę internetową i wejść na stronę forum.

Odnośniki zewnętrzne