NodeJS: vývoj, konfigurace serveru
15. prosince 2020JavaScript se prosazuje i ve vývoji backendu webových aplikací. K běhu na serveru slouží technologie NodeJS. Jak začít vyvíjet NodeJS aplikace? Jak si připravit server pro běh NodeJS aplikací? To se dozvíte v tomto návodu.
JavaSript je skriptovací jazyk, který se primárně používal na frontendu - běží u uživatele ve webovém prohlížeči. Technologickým vývojem nakonec neplánovaně vznikla možnost provozovat JavaScript na backendu - vzniklo NodeJS.
Instalace NodeJS
Krom NodeJS budete potřebovat nainstalovat i NPM, což je nástroj pro správu balíčku/knihoven, které jsou vyvinuté v JavaSriptu. Pokud používáte distribuci Mageia, instalaci provedete následujícím příkazem.
urpmi nodejs npmV debian-like distribucích instalaci NodeJS a NPM provedete příkazem:
apt-get install nodejs npmAsi vás bude zajímat jakou verzi NodeJS jste nainstalovaly to zjistíte příkazem:
node -v
Kód programu:
const http = require('http'); const hostname = '0.0.0.0'; const port = 3000; console.log(process.env); const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World!\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });Spuštění aplikace:
node hello.jsPo spuštění nodeJS je dostupná aplikace ve webovém prohlížeči na adrese:
http://0.0.0.0:3000/
Zdrojový kód příkladu NodeJS aplikace je na GitHubu.
NodeJS Docker
Nejjednodušší způsob zprovoznění NodeJS v Dockeru je za použít oficiálního Docker image NodeJS z docker hubu - tyto obrazy NodeJS jdou použít bez úprav. Zde je podrobný návod provoz NodeJS v Docker kontejneru.
Pro vykoušení můžete spustit rovnou mnou připravený příklad nodeJS dockeru.
Spuštění docker kontejneru a zobrazení aplikace:
docker-compose upRuční build kontejneru a ruční spuštění aplikace:
docker build -t nodex . docker run -rm -p 49160:3000 nodexAplikace pak bude dostupná na url:
http://localhost:49160/
NodeJS video návod
Jak si zprovoznit NodeJS? Můžete NodeJS nainstalovat nativně do systému nebo použít Docker. Zde je video návod jak si připravit prostředí pro vývoj aplikací v technologii NodeJS. A jak vytvořit první program (hello world) v NodeJS.
NodeJS na serveru
Po vyvinutí NodeJS aplikace, ji pravděpodobně bude chtít provozovat na serveru jako
démona=stále běžící program,
který automaticky startuje po spuštění serveru.
K tomu slouží různé nástroje v moderním OS založeném na Linuxu můžete použít systemd.
Jinou možností je například PM2, což se správce procesů/aplikací naprogramovaných v NodeJS.
PM2
PM2 funguje tak, že zajistí spuštění scriptu v NodeJS na pozadí při startu operačního systému a udržuje ho naživu. Běh sleduje a pokud z nějakého důvodu spadne, znovu ho spustí. Skripty automaticky startuje při startu systému a umí spustit jednorázově předem definované scripty.
Instalaci provedete příkazem:
npm install pm2@latest -gZde je podrobný příklad návodu jak zprovoznil PM2
Systemd
Zde je podrobný příklad návodu jak spouštět NodeJS aplikaci pomocí systemd.
Vytvořte soubor /lib/systemd/system/nodej-service.service
s konfigurací pro spouštění NodeJS aplikace s následujícím obsahem:
[Unit] Description=NodeJS After=network.target [Service] Type=simple #ExecStart=/usr/bin/node /srv/node/hello.js ExecStart=/usr/bin/npm run start --prefix /root/CloudProxy Restart=always #Restart=on-failure [Install] WantedBy=multi-user.targetNásledujícími příkazy znovu načtete konfiguraci a spustíte NodeJS aplikaci na pozadí(jako démona):
systemctl daemon-reload service nodejs-service start
Samozřejmě takovou konfiguraci je dobré dělat pomocí nějakého nástroje například ansible, protože pak jste schopní tyto úkoly automatizovat a tím budete efektivnější, což typicky každý správný linux admin nějaký takový nástroj používá. Ostatně chcete-li pro váš bussines používat NodeJS aplikaci, měli by jste delegovat instalaci linuxového serveru pro běh NodeJS aplikace na serverového profesionála.
TypeScript
JavaScript i přes modernizaci není příliš kvalitní skriptovací jazyk, proto se dneska často přechází na TypeScript Více o TypeScriptu na oficiálních anglických stránkách.Články na podobné téma
Analýza zadání a nacenění vývoje softwarového projektu
Python program na ovládání Dockeru pomocí API
Jak použít aplikaci MailCatcher pro testování emailů
Návod: Python OpenAI API
Vytvoření WebSocket webové aplikace a nastavení proxy
Řízení projektů: Agilní vývoj softwaru
Jak provozovat staré PHP aplikace
Co by měl umět dobrý programátor
Programovací jazyk Rust
Nette security bug CVE-2020-15227
Jak porovnat dvě stejné databáze?
REST API: API platform
Vlastní web a mail hosting se softwarem ISP Config
Programovní v SQL: PostgreSQL, MySQL/MariaDB
HTTPS: zabezpečený web
NoSQL databáze Mongo DB
Připojení k Microsoft SQL Serveru z Linuxu
Co je pracovní náplň programátora
Lokalizace aplikací v jazyce Python
Jaký mail a web hosting vybrat
How to make wireless low power Arduino
Digispark - Programujte mikrokontrolér Atmel ATtiny pomocí Arduino IDE
Program Roulette
Vývoj pro procesory ARM s Arduino IDE
Wireless low power Arduino
Pyradio - Python program for receive Internet radio with text user inteface
UPS monitor pro Android
Bezdrátový bateriově napájený WiFi teploměr
Jak programovat WiFi procesor ESP8266
Comparison IQRF vs Wireless Arduino
Jakou platformu zvolit pro eshop? Například Prestashop
Development kits and gateways for wireless platform IQRF
OpenStreetMap a GPS trasy v mapě na webu
Quickplay
Java program pro přehledné monitorování záložních zdrojů
Čipové kontaktní a bezkontaktní karty Java Card OpenPlatform
Otevřený chytrý telefon s Linuxem - Openmoko Neo FreeRunner
Vývoj pro bezdrátové moduly s procesorem PIC pod GNU/Linux - IQRF
Grafický program pro embeded/mobilní zařízení na vyhledávání dopravního spoje.
O programování a ruzné programy v jazyce Java, Python a dalších
Java program a applet Kalkulačka
Java program na výpočet kvadratické rovnice
Odběr novinek
Pokud máte zájem dostávat příležitostně na email novinky.
Můžete se vyplněním emailu registrovat k
odběru novinek.
+