第14回: Node.jsを導入する

ラズパイ上でWebサーバを実現するのに、Apacheもいいけど今回はNode.jsにチャレンジしようと思う。

1. Node.jsの特徴

  • Chromeの V8 JavaScript エンジンで高速。
  • サーバサイドで動作するJavaScript。Webサーバを実現できる。
  • シングルスレッド,イベントドリブン。ノンブロッキングI/Oの相乗効果で軽快かつ高性能。
    • ノンブロッキングI/Oとは,例えば、データベースにデータを取りに行ったときなど,待ち時間(ブロッキング)が生じても,その間に他の処理が出来る。
  • パッケージ管理システムnpmにより,膨大なオープンソースライブラリを利用できる。

ということで注目株らしい。

2. nodebrewをインストール

初めからインストールされていたのか、それともapt-getでパッケージを追加したときにインストールされたのか、今となっては不明であるが、ラズパイに既にインストールされていたNode.jsのバージョンを調べてみた。かなり古いので、別途環境を構築することにする。

 

Node.jsは、日進月歩で開発が進んでいて,とにかく多数のバージョンが存在し,バージョン管理が面倒くさい。それを便利にするツールが「nodebrew」である。

nodebrewは、プラットフォームに応じた任意のバージョンのNode.jsを簡単にインストールしてくれる。さらに、複数のバージョンをインストールしておいて、バージョンを一発で変更することが出来る。なので、Node.jsをアップデートしたら不具合が出た…。というときに、ダウングレードして元の環境に戻せる。

 

次のコマンドでnodebrewをインストールする。

 

nodebrewへパスを通すために、~/.bashrcの最後に次の内容を追加する。

 

設定変更をリロードする。

 

3. Node.jsをインストール

MacやWindowsで、Node.js公式ページにアクセスすると、 最新がv6.3.0、お勧めがv4.4.7であることが分かる。ただし,Macからアクセスしたために表示されているNode.jsはOS X用であることに注意する。スクリーンショット 2016-07-14 23.33.05

 

上部のDOWNLOADSをクリックしてダウンロードページに移ると、様々なプラットフォーム用のv4.4.7バイナリがあることが分かる。

ラズパイ用のバイナリは、ARMv6(Zero及び1用)、ARMv7(2及び3用)である。

確かに、ラズパイ用のバイナリが存在することが確認できた。

スクリーンショット 2016-07-14 23.37.34

 

ラズパイにて次のコマンドを実行すると、v4.4.7のバイナリがインストールされる(推奨)。

 

ちなみに、ソースからビルドしたいなら次のコマンド。時間がかかるので非推奨。

 

v4.4.7を有効化する。複数のバージョンをインストールして,バージョンを切り換えるときも同様にuseオプションを使う。

 

Node.jsの在処及びバージョンを確認してみる。
このディレクトリは先ほど.bashrcにパス設定したディレクトリである。
また、バージョンが4.4.7であることが確認できた。

 

 

4.WEBサーバを起動する

Node.jsのUsage & Exampleに記載されている,Hello Worldと表示するだけのWEBサーバを立ち上げてみる。

適当なディレクトリに,次の内容のJavaScriptファイルexample.jsを作成する。
hostnameには、ラズパイのIPアドレスまたはドメインネームを設定する。
私の環境ではraspi0.local

 

次のコマンドで,Node.jsによるWEBサーバを起動する。

 

Macからラズパイ上のWEBサーバにアクセスする。
ブラウザに入力するアドレスは,私の環境では,http://raspi0.local:3000

スクリーンショット 2016-07-15 22.21.11

以上,Node.jsによってWEBサーバを構築してHello Worldが表示できた。

Node.jsにはオープンソースのライブラリがたくさんある。その中には,WEBページ,WEBアプリを作成するためのフレームワークexpressというものがある。次回はその辺りにチャレンジする。


Navigation

👆 目次

👈第13回: GPIOを汎用UARTに設定する

👉第15回: WEBアプリフレームワークExpressの導入


2016-07-15 作成