Express を使用して Node.js Web アプリケーションをビルドし、Azure Cloud Services (クラシック) にデプロイする
重要
Cloud Services (クラシック) は、2024 年 9 月 1 日をもって、すべてのお客様に対して非推奨になりました。 既存の実行中のデプロイはすべて Microsoft によって停止およびシャットダウンされ、2024 年 10 月以降、データは永久に失われます。 新しいデプロイでは、新しい Azure Resource Manager ベースのデプロイ モデル、 Azure Cloud Services (延長サポート) を使用してください。
node.js には、コア ランタイムの最小限の機能セットが含まれます。 多くの場合、開発者は Node.js アプリケーションを開発するときに、Microsoft 以外のモジュールを使用して追加機能を提供します。 このチュートリアルでは、Express モジュールを使用して新しいアプリケーションを作成します。Express モジュールは、Node.js Web アプリケーションを作成するための Model-View-Control (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」または「はい」を入力します。 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 デベロッパー センターを参照してください。