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 フレームワークを提供します。

完成したアプリケーションのスクリーンショットは次のようになります。

A web browser displaying Welcome to Express in Azure

クラウド サービス プロジェクトの作成

Note

このセクションを適切に実行するには、正常に動作している Node.js のインストールと、ご利用のプラットフォーム用の Azure SDK for Node.js が必要です。

次の手順を実行して、expressapp という名前の新しいクラウド サービス プロジェクトを作成します。

  1. [スタート] メニューまたはスタート画面で、Windows PowerShell を検索します。 最後に、 [Windows PowerShell] を右クリックし、 [管理者として実行] を選択します。

    Azure PowerShell icon

  2. 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.jsonengines プロパティを確認します。

Express のインストール

  1. 次のコマンドを発行して Express ジェネレーターをインストールします。

    PS C:\node\expressapp> npm install express-generator -g
    

    この npm コマンドにより次のような結果が出力されます。

    Windows PowerShell displaying the output of the npm install express command.

  2. WebRole1 ディレクトリに移動し、express コマンドを使用して新しいアプリケーションを生成します。

    PS C:\node\expressapp\WebRole1> express
    

    前のアプリケーションを上書きするかどうかを確認するメッセージが表示されます。 「y」または「yes」と入力して続行します。 Express によって、app.js ファイルと、アプリケーションを構築するためのフォルダー構造が生成されます。

    The output of the express command

  3. package.json ファイルに定義された依存関係をインストールするには、次のコマンドを入力します。

    PS C:\node\expressapp\WebRole1> npm install
    

    The output of the npm install command

  4. 次のコマンドを使用して、bin/www ファイルを server.js にコピーします。 これは、クラウド サービスがこのアプリケーションのエントリ ポイントを見つけられるようにするためです。

    PS C:\node\expressapp\WebRole1> copy bin/www server.js
    

    このコマンドが完了すると、WebRole1 ディレクトリ内に server.js ファイルが作成されています。

  5. server.js を変更して、次の行から '.' 文字を 1 つ削除します。

    var app = require('../app');
    

    この変更を行うと、行は次のようになります。

    var app = require('./app');
    

    ファイルを必要なアプリケーション ファイルと同じディレクトリに移動しているため (前は bin/www)、この変更が必要です。 この変更を行った後、 server.js ファイルを保存します。

  6. 次のコマンドを使用して、アプリケーションを Microsoft Azure エミュレーターで実行します。

    PS C:\node\expressapp\WebRole1> Start-AzureEmulator -launch
    

    A web page containing welcome to express.

ビューの変更

次に、"Welcome to Express in Azure" というメッセージが表示されるようにビューを変更します。

  1. 次のコマンドを入力して、index.jade ファイルを開きます。

    PS C:\node\expressapp\WebRole1> notepad views/index.jade
    

    The contents of the index.jade file.

    Jade は Express アプリケーションで使用される既定のビュー エンジンです。

  2. テキストの最後の行に in Azureを追加します。

    The index.jade file, the last line reads: p Welcome to #{title} in Azure

  3. ファイルを保存して、メモ帳を終了します。

  4. ブラウザーの表示を最新情報に更新すると、変更を確認できます。

    A browser window, the page contains Welcome to Express in Azure

アプリケーションのテストが終了したら、 Stop-AzureEmulator コマンドレットを使用してエミュレーターを停止します。

Azure にアプリケーションをデプロイする

Azure PowerShell ウィンドウで、 Publish-AzureServiceProject コマンドレットを使用してアプリケーションをクラウド サービスにデプロイします。

PS C:\node\expressapp\WebRole1> Publish-AzureServiceProject -ServiceName myexpressapp -Location "East US" -Launch

デプロイ操作が完了すると、ブラウザーが開き、Web ページが表示されます。

A web browser displaying the Express page. The URL indicates it is now hosted on Azure.

次のステップ

詳細については、 Node.js デベロッパー センターを参照してください。