2013年7月31日水曜日

Raspberry Pi で Node.js

 AmazonでInterfaceの9月号を買おうと思って、表紙を見たら、HTML5でIO~みたいなことが書いてありました。さっそくポチったのですが、明日以降雑誌が届く前に、関連しそうなところを予習してみようと思います。今回は、ネットなどでなんか聞いたことがある「Node.js」というWebサーバ?をRaspberry Piで試してみようと思います。

 まず、ここを参考に Node.js をインストール。もっと新しいバージョンが入手できそうですが、実績(安全)を見て、サイトの通りのバージョンを選択しました。

   wget http://nodejs.org/dist/v0.8.11/node-v0.8.11.tar.gz
   tar -zxf node-v0.8.11.tar.gz
   cd node-v0.8.11
   ./configure
   make
   sudo make install

で、インストール。make には少し時間がかかります。

   node -v

で、バージョン確認して、インストール成功を確認。

   npm -v

で、パッケージマネージャもバージョン確認。
 ネットで「node.js入門」とかで検索すると、ほぼ同じサンプルが頻繁に見つかります。例によって node版Hello Worldです。helloworld.jsというファイル名で以下を作成。

   var sys = require('sys');
   var http = require('http');
   var server = http.createServer(function (request, response) {
       response.writeHead(200, {'Content-Type': 'text/plain'});
       response.write('Hello World!!\n');
       response.end();
   }).listen(8124);
   sys.log('Server running at http://127.0.0.1:8124/');

 nodeを起動して、

   node helloworld.js

Raspberry Piローカルからなら、

   http://localhost(または、127.0.0.1):8124/

他PCからなら

   http://Raspberry Piのアドレス:8124/

で、


となることを確認。

つづいて、入門サイトなどにも載っている connect と WebSocket と expressフレームワークは最低限使いそうなのでインストール。

   npm install connect
   npm install socket.io
   npm install express

いくつかのサイトを参考にしつつ、 express のスケルトンを適当に生成してみる。

   node node_modules/express/bin/express exptest
   cd exptest
   npm install

依存ファイルがインストールされて、

   node app.js

とすると、「Express server listening on port 3000」と表示されるので、

   http://localhost (あるいはRaspberry Piのアドレス):3000/

へアクセスすると


 こんな感じで一応動作を確認。色々な方が公開してくれている情報があった(感謝!)ので、それらを断片的に拾い集めてきて、どうにか動作はさせられました。

 続きは、AmazonからInterfaceが届いてから。おそらく、WebからのLチカの方法とかが書かれていると思うので、それを参考にして、「nodeでLチカ」を試してみたいと思います。