SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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の操作について解説したいと思います。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Windows Azure新機能チュートリアル連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト statemachine(statemachine)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6580 2012/05/30 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング