Amazon EC2からnode.jsを使ってみる

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

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ネタについていかがでしたでしょうか。とりあえず動いたというレベルですが、次はあるモジュールをロードして様々な動作を確認したいと思います。

参考資料

node.js

express