使用 Express 在 Azure 云服务(经典)中构建并部署 Node.js Web 应用程序

重要

新客户的云服务(经典版)现已弃用,并将于 2024 年 8 月 31 日对所有客户停用。 新部署应使用基于 Azure 资源管理器的新型部署模型 Azure 云服务(外延支持)

Node.js 包含核心运行时中最小的一个功能集。 开发人员在开发 Node.js 应用程序时经常会使用第三方模块来提供额外功能。 本教程将使用 Express 模块新建一个应用程序,该模块提供用于创建 Node.js Web 应用程序的 MVC 框架。

以下是已完成应用程序的屏幕截图:

A web browser displaying Welcome to Express in Azure

创建云服务项目

注意

要成功完成此部分,必须为平台安装有效的 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
    

    注意

    默认情况下, Add-azurenodewebrole 使用旧版 Node.js。 上述 Set-azureserviceprojectrole 语句将指示 Azure 使用 v0.10.21 版本的节点。 请注意,这些参数区分大小写。 通过检查 WebRole1\package.json 中的“engines”属性可以验证是否已选择正确的 Node.js 版本 。

安装 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 以删除以下行中的“.”字符之一。

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

    完成此项修改后,该行应如下所示。

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

    之所以需要进行此更改,是因为我们已将文件(以前的 bin/www)移到了所需应用文件所在的同一个目录。 完成此更改后,请保存 server.js 文件。

  6. 使用以下命令以在 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 cmdlet 停止模拟器。

将应用程序发布到 Azure

在 Azure PowerShell 窗口中,可使用 Publish-AzureServiceProject cmdlet 将应用程序部署到云服务

PS C:\node\expressapp\WebRole1> Publish-AzureServiceProject -ServiceName myexpressapp -Location "China North 2" -Launch

在部署操作完成后,浏览器将打开并显示该网页。

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

后续步骤

有关详细信息,请参阅 Node.js 开发人员中心