Amazon EC2からnode.jsを使ってみる
node.jsをインストール
node.jsは、イベントループとノンブロッキングI/Oを特徴として持っているサーバサイドJavaScriptの仕組みです。gitから最新のビルドをダウンロードして使うことが出来ます。早速使ってみましょう。まずは必要なライブラリをyumからインストールします。
$ sudo yum install git -y $ sudo yum install openssl-devel -y $ sudo yum install gcc-c++ -y $ sudo yum install make -y
次に複数のnodeを使えるようにnvm(Node Version Manager)をgitからダウンロードします。
$ git clone git://github.com/creationix/nvm.git .nvm $ . .nvm/nvm.sh
nodeのインストールです。0.6系と0.7系がありますのでそれぞれインストールし、0.7系を選択してみました。
$ nvm install v0.6.19 $ nvm install v0.7.9 $ nvm use v0.7.9 $ nvm ls v0.6.19 v0.7.9 current: v0.7.9
Webサーバを立てる
早速、node.jsを使ってWebサーバを作ってみたいと思います。
$ vi app1.js
数行でできあがりです。requireの書き方は、CommonsJS(JavaScript標準作法)に沿った記述で、モジュールをロードする仕組みです。ここでは、httpモジュールをロードして3000番ポートで待ち受けしつつ、リクエストが来たらHello node.jsと返す簡単なものです。
var http = require('http'); var app = http.createServer(function(req,res){ res.end('Hello node.js'); }).listen(3000);
サーバを起動します。
$ node app1.js
ブラウザから表示を確認します。Amazon EC2のセキュリティグループ設定を忘れずに。
Expressを使ってみる
Expressは、JavaScriptのMVC雛形ソースを自動生成してくれるモジュールです。npm(Node Package Manager)を使ってインストールします。
$ npm install express
次に、最も簡単なWebサーバを書いてみます
$ vi app2.js
var express = require('express'); var app = express.createServer(); app.get('/', function(req, res){ res.send('Hello node.js'); }); app.listen(3000);
サーバを起動します。
$ node app2.js
無事にWebサーバが起動しました。
Expressを使って雛形を自動生成する
Expressを使ってソースを自動生成してみます。
$ mkdir exp1 $ ./node_modules/express/bin/express -e exp1 create : exp1 create : exp1/package.json create : exp1/app.js create : exp1/public create : exp1/public/javascripts create : exp1/public/images create : exp1/public/stylesheets create : exp1/public/stylesheets/style.css create : exp1/routes create : exp1/routes/index.js create : exp1/views create : exp1/views/index.ejs install dependencies: $ cd exp1 && npm install run the app: $ node app
自動生成によってルーティング、テンプレートビュー、スタイル、ロジック等の雛形が作成されました!
$ cd exp1 && npm install $ node app
関連するモジュールをインストールして起動すれば出来上がり。
まとめ
node.jsのインストールとHello Worldネタについていかがでしたでしょうか。とりあえず動いたというレベルですが、次はあるモジュールをロードして様々な動作を確認したいと思います。