Azure App Service的共享代码(移动应用程序)

时间:2016-02-12 14:32:12

标签: node.js azure azure-web-sites azure-mobile-services

因此,Parse关机让我争先恐后地为正在准备发布的应用找到合适的备份计划。

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

  

注意:这是Azure移动服务主题。 Microsoft Azure   为所有新的移动后端推荐Azure App Service移动应用程序   部署。要开始使用Azure App Service Mobile Apps,请参阅   App Service Mobile Apps文档中心。

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

  

移动应用程序是App Service中的一种新应用程序类型,它集成了移动服务的所有功能等。移动应用程序已公开预览。

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

例如,这里是使用WebStorm通过Git检出项目结构的比较:

移动服务项目结构

Mobile Services Project Structure

应用服务项目结构

App Service Project Structure

现在,当我查看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应用服务。

2 个答案:

答案 0 :(得分:1)

You can see (and edit) all the code associated with your site in Visual Studio Online. The best way of getting there is to go to your site, click on Tools (along the top), select Visual Studio Online and then click on Go. In terms of your specific example, let's say you have an 'api' directory and a 'shared' directory. In the api/customapi.js file, you could do this:

data = re.findall(r'\[(.*?)\].*?(\d+).*?(\d+).*?(\d+)\s(\d+)', line)
print data[0][0]
02/Jan/2015:08:07:32

Then in your shared/customcode.js, you can do:

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

// Later on
customcode.doSomething();

答案 1 :(得分:0)

基本上,移动应用程序&移动服务是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上的快速webapp的正常结构。

因此,如果您想要在Azure移动应用/服务上需要一些模块或共享代码,则只需使用express for node.js。