Node.js na Raspberry Pi

Webserver na Raspberry Pi nemusí být jen Apache a PHP. Je možné použít i čím dál tím oblíbenější Node.js. Jak Node nainstalovat a vytvořit „Hello world“?

 

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
logo Node.js

Instalace Node.js

Před každou instalací zaktualizujeme seznamy balíčků a provedeme jejich aktualizaci.

sudo apt-get update
sudo apt-get dist-upgrade


Když máme balíčky zaktualizovány tak si z internetu stáhneme aktuální verzi Node.js

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -


Pokud tento příkaz nespustíme, další příkaz nainstaluje node.js verze v0.10.29. A to asi nechceme 🙂.

Reálná instalace se provádí příkazem

sudo apt-get install nodejs


Node.js máme úspěšně nainstalované a můžeme si zkusit vypsat jeho verzi. Výpis verze se provádí příkazem:

node -v


Příkaz by měl vypsat

v8.9.4


Node.js Hello world

Vytvoříme soubor main.js

vim main.js


a zadáme do něho:

var http = require('http');

http.createServer(function (req, res) {
   res.writeHead(200, {'Content-Type': 'text/plain'});
   res.end('Hello World from Raspberry Pi!');
}).listen(8080); // here you can change port


Pokud máme vše zadáno spuštění se provádí příkazem

node main.js


do prohlížeče zadáme adresu Raspberry Pi s portem 8080 a zkusíme se připojit.

http://192.168.0.150:8080


Zobrazí se stránka s nápisem „Hello World from Raspberry Pi!“.

Problémy

Při spuštění se vypíše

events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES 0.0.0.0:8080
    at Object._errnoException (util.js:1022:11)
    at _exceptionWithHostPort (util.js:1044:20)
    at Server.setupListenHandle [as _listen2] (net.js:1334:19)
    at listenInCluster (net.js:1392:12)
    ...


Řešením je změnit port na kterém spouštíme HTTP modul. Na portu, který jsme zvolili, již totiž nějaká aplikace poslouchá.

Závěr

Nainstalovat Node.js na Raspberry pi je možná ještě jednodušší než instalovat Apache s PHP.
Takže pokud pro svůj web potřebujete node, není na Raspberry Pi žádný problém 🙂.

JavaScript, Node.js

- (17. 3. 2019)

Jsem programátor, horolezec a tak trochu FlexiBee fanatik :-).
Na CharlieBlogu sepisuji své nápady a poznatky už od roku 2006.

Powered by CharlieBlog Engine v2.3 - Login