Node.js

Page

Stránky / Softvér /

Toto je úvodná stránka ku využitiu Node.js na spoluprácu s Arduinom. Node.js je vývojové prostredie, umožňujúce spúšťanie javascriptu priamo na vašom počítači, alebo na serveri v cloude. Postupne tu pribudnú aj informácie, ktoré úplne nesúvisia s Arduinom. Ale mnohým z vás sa môžu hodiť, pretože vývoj serverov na Internete sa presúva práve ku takýmto technológiám.

Node.js na Internete

Node.js nájdete na tejto stránke. Zo stránky si môžete vývojové prostredie nainštalovať a nájdete tam aj niekoľko tutoriálov, ktoré vás vedia dostať do problematiky. Javascript je syntaxou veľmi podobný c++, preto by pre vás pochopenie príkladov nemalo byť ťažšie, než používate pri písaní programov pre Arduino.

npm

Prakticky neoddeliteľnou súčasťou je program npm (node package manager). Je to balíčkovací systém, ktorý umožňuje spravovať všetky balíčky, ktoré vo svojich projektoch potrebujete. Balíček si môžete nainštalovať do lokálneho alebo globálneho adresára. Balíček v lokálnom adresári je umiestnený v podadresári node_modules a je prístupný len pre konkrétny projekt. Balíček v globálnom adresári je nainštalovaný iba raz a je prístupný pre všetky projekty. Obvyklá prax je taká, že skoro všetko je v lokálnych balíčkoch a globálnych máte iba veľmi špecifické balíčky.

Užitočné príkazy:

  • npm install <package> - Nainštalovanie balíčka do lokálneho adresára.
  • npm install --save <package> - Nainštalovanie balíčka do lokálneho adresára a pridanie odkazu do súboru package.json.
  • npm install -g <package> - Nainštalovanie balíčka do globálneho adresára.
  • npm list -g --depth=0 - Zoznam globálnych balíčkov.
  • npm uninstall <package> - Odinštalovanie lokálneho balíčka.
  • npm install - Nainštalujú sa do lokálneho adresára všetky balíčky, ktoré sú vymenované v súbore package.json.
  • npm init - Keď príkaz spustíte v prázdnom adresári projektu, vytvorí vám súbor package.json. Program sa bude postupne pýtať na niektoré parametre.
  • npm init -f - Keď príkaz spustíte v prázdnom adresári projektu, vytvorí vám súbor package.json. Program sa nebude nič pýtať.

package.json

Tento súbor popisuje inštaláciu vášho balíčka. Obsahuje základné informácie o autorovi balíćka a zoznam používaných balíčkov iných autorov. Napríklad keď som vytváral ukážku pre Arduino a sériový port, najprv som príkazom npm init vytvoril základný balíček. Potom som do neho príkazom npm install --save serialport doinštaloval balíček pre komunikáciu cez sériový port. Na záver som ešte ručne doplnil niektoré parametre spustenia do súboru. Výsledný súbor vyzerá napríklad takto.

{
  "name": "arduinoserialtest",
  "version": "1.0.0",
  "description": "Receiver from Arduino.",
  "main": "index.js",
  "scripts": {
    "ports": "node list.js",
    "console": "node index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Robo Ulbricht",
  "license": "ISC",
  "dependencies": {
    "serialport": "^4.0.7"
  }
}

pm2

Skôr alebo neskôr narazíte na potrebu, spustiť vo virtuálnom stroji svoj server aj po reštarte. Môžete na to využiť balíček pm2. Dokumentáciu nájdete na stránke http://pm2.keymetrics.io/. Pokiaľ nechcete študovať tento balíček do hĺbky, tu je postup pre virtuálny stroj vo VirtualBoxe. Použijeme hotový stroj Node.js od firmy Bitnami. Tá používa Ubuntu vo verzii 14.

  • sudo npm install -g pm2 - Nainštalujete balíček globálne.
  • git clone https://github.com/roboulbricht/node.js-tests - Stiahnete si moje príklady.
  • cd node.js-tests - Presun do adresára.
  • cd 05-express-json - Presun do adresára.
  • npm install - Nainštalovanie balíčkov.
  • sudo ufw allow 3000/tcp - Povolíte si port vo firewalle.
  • npm start - Pokusné spustenie servera. Ak sa rozbehne, zastavte ho klávesovou skratkou Ctrl-C. Vyskúšajte sa pripojiť k serveru. Napríklad u mňa doma je to adresa http://192.168.0.31:3000.
  • cd ~ - Vrátite sa do svojho koreňového adresára.
  • pm2 start --name www node.js-tests/05-express-json/bin/www - Spustíte server.
  • pm2 startup - Toto zlyhá, ale vypíše vám presný príkaz, ktorý máte napísať miesto toho.
  • sudo env PATH=$PATH:/opt/bitnami/nodejs/bin /opt/bitnami/nodejs/lib/node_modules/pm2/bin/pm2 startup upstart -u bitnami --hp /home/bitnami - Takto to bolo v mojom prípade.
  • pm2 save - Uloženie konfigurácie. Po reštarte virtuálneho stroja by to malo zase všetko fungovať a server by mal byť spustený.

Články v blogu

V blogu som písal aj o týchto veciach.

Publikované balíčky

Pretože som Node.js použíl aj pri niektorých projektoch, publikoval som aj niekoľko balíčkov. Všetky balíčky sú s licenciou MIT.

  • mssql-functions (npm, GitHub) - Funkcie na pohodlnú prácu s databázovým serverom MS SQL Server.
  • mysql-functions (npm, GitHub) - Funkcie na pohodlnú prácu s databázovým serverom MySQL.

08.05.2017


Menu