Express を使用して Node.js Web アプリケーションをビルドし、Azure Cloud Services (クラシック) にデプロイする
重要
現在、Cloud Services (クラシック) は新しいお客様に対して非推奨となっており、2024 年 8 月 31 日に、すべてのお客様に対して廃止される予定です。 新しいデプロイでは、新しい Azure Resource Manager ベースのデプロイ モデル、 Azure Cloud Services (延長サポート) を使用してください。
node.js には、コア ランタイムの最小限の機能セットが含まれます。 多くの場合、開発者は Node.js アプリケーションを開発するときに、サード パーティ モジュールを使用して追加機能を指定します。 このチュートリアルでは、Express モジュールを使って新しいアプリケーションを作成します。Express モジュールは、Node.js Web アプリケーションを作成するための MVC フレームワークを提供します。
完成したアプリケーションのスクリーンショットは次のようになります。
クラウド サービス プロジェクトの作成
Note
このセクションを適切に実行するには、正常に動作している Node.js のインストールと、ご利用のプラットフォーム用の Azure SDK for Node.js が必要です。
- Azure SDK for Node.js をインストールする: Windows インストーラー
次の手順を実行して、expressapp
という名前の新しいクラウド サービス プロジェクトを作成します。
[スタート] メニューまたはスタート画面で、Windows PowerShell を検索します。 最後に、 [Windows PowerShell] を右クリックし、 [管理者として実行] を選択します。
c:\node ディレクトリに移動し、次のコマンドを入力して
expressapp
という名前の新しいソリューションと WebRole1 という名前の Web ロールを作成します。PS C:\node> New-AzureServiceProject expressapp PS C:\Node\expressapp> Add-AzureNodeWebRole PS C:\Node\expressapp> Set-AzureServiceProjectRole WebRole1 Node 0.10.21
Note
既定では、Add-AzureNodeWebRole は以前のバージョンの Node.js を使用します。 上記の Set-AzureServiceProjectRole ステートメントは v0.10.21 の Node.js を使用するよう Azure に指示します。 パラメーターには大文字と小文字の区別があることに注意してください。 Node.js の正しいバージョンが選択されていることを検証できます。このためには、WebRole1\package.json の engines プロパティを確認します。
Express のインストール
次のコマンドを発行して Express ジェネレーターをインストールします。
PS C:\node\expressapp> npm install express-generator -g
この npm コマンドにより次のような結果が出力されます。
WebRole1 ディレクトリに移動し、express コマンドを使用して新しいアプリケーションを生成します。
PS C:\node\expressapp\WebRole1> express
前のアプリケーションを上書きするかどうかを確認するメッセージが表示されます。 「y」または「yes」と入力して続行します。 Express によって、app.js ファイルと、アプリケーションを構築するためのフォルダー構造が生成されます。
package.json ファイルに定義された依存関係をインストールするには、次のコマンドを入力します。
PS C:\node\expressapp\WebRole1> npm install
次のコマンドを使用して、bin/www ファイルを server.js にコピーします。 これは、クラウド サービスがこのアプリケーションのエントリ ポイントを見つけられるようにするためです。
PS C:\node\expressapp\WebRole1> copy bin/www server.js
このコマンドが完了すると、WebRole1 ディレクトリ内に server.js ファイルが作成されています。
server.js を変更して、次の行から '.' 文字を 1 つ削除します。
var app = require('../app');
この変更を行うと、行は次のようになります。
var app = require('./app');
ファイルを必要なアプリケーション ファイルと同じディレクトリに移動しているため (前は
bin/www
)、この変更が必要です。 この変更を行った後、 server.js ファイルを保存します。次のコマンドを使用して、アプリケーションを Microsoft Azure エミュレーターで実行します。
PS C:\node\expressapp\WebRole1> Start-AzureEmulator -launch
ビューの変更
次に、"Welcome to Express in Azure" というメッセージが表示されるようにビューを変更します。
次のコマンドを入力して、index.jade ファイルを開きます。
PS C:\node\expressapp\WebRole1> notepad views/index.jade
Jade は Express アプリケーションで使用される既定のビュー エンジンです。
テキストの最後の行に in Azureを追加します。
ファイルを保存して、メモ帳を終了します。
ブラウザーの表示を最新情報に更新すると、変更を確認できます。
アプリケーションのテストが終了したら、 Stop-AzureEmulator コマンドレットを使用してエミュレーターを停止します。
Azure にアプリケーションをデプロイする
Azure PowerShell ウィンドウで、 Publish-AzureServiceProject コマンドレットを使用してアプリケーションをクラウド サービスにデプロイします。
PS C:\node\expressapp\WebRole1> Publish-AzureServiceProject -ServiceName myexpressapp -Location "East US" -Launch
デプロイ操作が完了すると、ブラウザーが開き、Web ページが表示されます。
次のステップ
詳細については、 Node.js デベロッパー センターを参照してください。