【问题标题】:Shared Code for Azure App Service (Mobile App)Azure 应用服务(移动应用)的共享代码
【发布时间】:2016-05-23 18:02:05
【问题描述】:

因此,Parse 关闭让我忙于为即将发布的应用寻找合适的备份计划。

我一直在寻找 Microsoft Azure 作为替代品,并开始使用 Azure 移动服务进行测试。这实际上进展得很顺利,但我一直注意到很多这样的消息:

注意:这是一个 Azure 移动服务主题。微软天青 为所有新的移动后端推荐 Azure App Service 移动应用 部署。若要开始使用 Azure 应用服务移动应用,请参阅 应用服务移动应用文档中心。

好的,所以我一直在研究应用服务。我已经阅读了很多文档,有时可能会令人困惑,因为有些链接似乎没有指向正确的“版本”。有时,“应用程序服务”链接最终会出现在“移动服务”文章中。他们的名字非常接近,以至于可能会令人困惑和沮丧。但承诺如下:

移动应用是应用服务中的一种新应用类型,它集成了移动服务的所有功能等。移动应用处于公开预览阶段。

无论如何,对于移动服务来说很难找到并且(到目前为止)已证明无法为应用服务找到的一件事与共享代码有关。一个重要原因是似乎没有机制可以在 Azure 门户(旧的或新的)中真正查看您的共享代码,更不用说使用他们的在线编辑器了。我看不到这种代码应该如何或在何处合并到我的自定义应用服务 API 中。

例如,下面是使用 WebStorm 通过 Git 签出时项目结构的比较:

移动服务项目结构

应用服务项目结构

现在,当我查看 App Services 项目中的 app.js 文件时,我看到以下代码行:

// Import the files from the tables directory to configure the /tables endpoint
mobile.tables.import('./tables');

// Import the files from the api directory to configure the /api endpoint
mobile.api.import('./api');

嗯,这很有希望,因为我想我可以添加一个“共享”目录,然后调用这样的东西:

mobile.api.import('./shared');

我猜这会导入该目录中的所有代码文件,但是我将如何从其他代码文件中访问它们?

这些似乎是普通的 Node.js/Express 应用程序,所以如果我已经在 app.js 中导入了代码文件,以下是否可以工作(假设一个名为 customcode.js 的代码文件)?

app.js:

mobile.api.import('./shared');

code.js(在 ./api 中):

var custom = require('customcode');
custom.doSomething();

customcode.js(在./shared 中):

exports.doSomething = function () {

};

如果这不起作用,有没有办法做我想做的事情?它似乎在 Azure 移动服务上运行良好,但他们正试图将我推向 Azure 应用服务。

【问题讨论】:

  • 您是否已经在移动应用上尝试过您的代码?由于移动应用程序比移动服务更灵活,因此您应该明确地使用移动应用程序。 Azure 移动应用程序的工作方式与您的节点应用程序的传统 Web 托管类似,因此自定义模块的 require 应该可以正常工作。

标签: node.js azure azure-web-app-service azure-mobile-services


【解决方案1】:

您可以在 Visual Studio Online 中查看(和编辑)与您的站点关联的所有代码。到达那里的最佳方法是访问您的站点,单击工具(在顶部),选择 Visual Studio Online,然后单击 Go。就您的具体示例而言,假设您有一个“api”目录和一个“共享”目录。在 api/customapi.js 文件中,您可以这样做:

var customcode = require('../shared/customcode');

// Later on
customcode.doSomething();

然后在你的 shared/customcode.js 中,你可以这样做:

module.exports = {
    doSomething: function () {
        // Your custom code here
    }
};

【讨论】:

    【解决方案2】:

    本质上,移动应用程序和移动服务是一种类似于 WebApps 的应用程序服务。

    因此您可以通过其网址访问相关的 Kudu 控制台,例如移动应用为https://<mobile-app-name>.scm.azurewebsites.net/DebugConsole,移动应用为https://<mobile-service-name>.scm.azure-mobile.net/DebugConsole

    然后,Kudu 控制台中移动应用或移动服务的路径site/wwwroot 的类似树如下。

    ../wwwroot
      |- api
      |- App_Data
      |- node_modules
      |- tables
      |- static
      |- .gitignore
      |- app.js
      |- iisnode.yml
      |- package.json
      |- sentinel
      |- web.config
    

    上面的树是 Azure node.js 上 express webapp 的正常结构。

    所以如果你想在 Azure 移动应用/服务上需要一些模块或共享代码,你只需要像使用 node.js 的 express 一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      相关资源
      最近更新 更多