CodeZine(コードジン)

特集ページ一覧

Windows AzureユーザーのためのNode.js HTTPモジュールの基礎

Windows Azure 新機能チュートリアル(14)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2012/05/30 14:00
目次

Expressフレームワーク

 前ページでざっと標準のHTTPモジュールを解説しましたが、標準モジュールのみで処理を行おうとすると、かなり煩雑な処理を記述する必要があります。これを補うために、Node.jsでは便利なライブラリやフレームワークなどが公開されており、ノードパッケージマネージャー(以下、npm)という仕組みで手軽にインストールできます。npmは、PerlやRubyで言うCPANやRubyGems相当のものと考えていただければよいでしょう。

 ここでは、npmの利用例として、WebフレームワークであるExpressのインストールから実行までの方法を説明します。

インストール

 Windows Azure上で実行できるようにするため、以下の手順にしたがって、新しいサービスとWebロールを追加していきます。

[1]サービスとWebロールを作成する

 はじめにWindows Azureサービスと、Webロールを1つ作成します(リスト9)。

[リスト9]Azureサービスとロールの追加
PS C:\node> New-AzureService express
...
PS C:\node\express> Add-AzureNode WebRole1

[2] Expressをインストールする

 WebRole1フォルダに移動し、npmコマンドを実行します。第2引数のinstallは文字通りインストールを指示し、第3引数はパッケージ名を指定します(リスト10)。カレントディレクトリのnode_modulesフォルダにパッケージがインストールされます。

[リスト10]npmによるExpressのインストール
PS C:\node\experss> cd WebRole1
PS C:\node\express\WebRole1> npm install express

 インストールの結果は、図3の通りです。

図3:npmによるインストール
図3:npmによるインストール

[3]Expressの設定をする

 Expressは複数のテンプレートエンジン(注1)を利用できますが、ここではEJS(Embedded JavaScript)を選択します。.\node_modules\.bin\expressコマンドを実行します(リスト11)。

[リスト11]Expressの初期化
PS C:\node\express\WebRole1> .\node_modules\.bin\express -t ejs
注1

 Haml/Jade/EJS/CoffeKup/jQuery Templates をサポートしています。詳細は、Expressのページを参照してください。

 コマンドを実行すると必要なリソースが追加されます(図4)。

図4:Expressの設定
図4:Expressの設定

 引き続き、npm installコマンドを再度実行し、依存関係のあるパッケージを追加インストールします(リスト12)。

[リスト12]依存パッケージのインストール
PS C:\node\express\WebRole1> npm install

Windows Azureでの実行

 前項までの設定を行うと、「node.exe app.js」とコマンドライン上から実行できますが、Windows Azure上で実行するためにはさらに修正が必要です。

[4]Windows Azure向けの設定をする

 Windows Azureで実行できるように、app.jsをserver.jsにリネームします(リスト13)。

[リスト13]server.jsのリネーム
PS C:\node\express\WebRole1> mv .\server.js .\server.js.old
PS C:\node\express\WebRole1> mv .\app.js server.js

 Windows Azureで実行する場合は、port環境変数でリッスンポートが渡されるため、server.jsの最後の部分をリスト14のように修正します。

[リスト14]server.jsの修正
var port = process.env.port || 3000;
http.createServer(app).listen(port);
console.log("Express server listening on port " + port);

[5]エミュレーターでの実行

 Start-AzureEmulator -Launchコマンドレットでエミュレーターを起動します。図5のとおり表示されれば正しく実行できています。

図5:Expressの実行例
図5:Expressの実行例

 ほかにも、便利なライブラリなどが公開されています。パッケージは、npm registryから検索できます。

まとめ

 今回はHTTPサーバの基本機能と、npmによるパッケージのインストールについて紹介しました。ここで説明した機能はほんの一例で、ほかにもさまざまな書き方が可能となっており、紹介しきれない機能も多々あります。興味を持たれた方は、さらにNode.jsのオンラインドキュメントや他の文献を読み進んでいただければ幸いです。

 2回のNode.jsの基本機能を経たので、次回はWindows Azureの操作について解説したいと思います。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Windows Azure新機能チュートリアル

もっと読む

著者プロフィール

  • WINGSプロジェクト statemachine(statemachine)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5