使用Azure,我使用网络应用和移动服务。移动服务似乎缺少一些限制我进行传统/最佳实践路由的组件。当我克隆并检查项目时,它似乎缺少Azure Web App或任何自制的服务器中存在的索引文件。请提供您对最佳实践的任何建议或知识,以及对我为移动服务设置的任何修改。
以下代码是我设计移动服务API的方式,因为它们似乎缺少索引。也许我应该制作一个专用的API来将所有内容联系起来? 任何建议或经验都有助于我们做出正确的决定。谢谢。
var express = require('express');
var app = module.exports = express();
var bodyParser = require('body-parser');
//configure bodyparser
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
//test
app.register = function(api) {
api.get('id', getNextUserId);
api.get('get_user_by_email', getUser);
api.post('post_user', postUser)
}
答案 0 :(得分:1)
与网络应用程序结合使用时,我不建议使用Azure移动服务。
创建基于Express的常规Web App。我用的是Yeoman发电机。添加azure-mobile-apps软件包 - 这是提供/ tables端点以连接到SQL Azure实例的中间件。它还处理身份验证和自定义端点创建。
通过这种方式,您无需额外的服务来处理移动连接。
答案 1 :(得分:1)
azure-mobile-apps模块公开了一个使用use
函数挂载到Express实例上的中间件。中间件处理特定路由,例如/tables
和/api
。
您可以将您想要的任何其他中间件或路由安装到您的快递应用程序中,让您可以自由使用您认为合适的任何规定的“最佳实践”。要集成到您的样本中:
var express = require('express');
var app = module.exports = express();
var bodyParser = require('body-parser');
var mobileApp = require('azure-mobile-apps')();
//configure bodyparser
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
//configure mobile apps
mobileApp.tables.add('table');
app.use(mobileApp);
//test
app.register = function(api) {
api.get('id', getNextUserId);
api.get('get_user_by_email', getUser);
api.post('post_user', postUser);
};
答案 2 :(得分:0)
实际上,移动服务的结构有点复杂。我们可以对其结构进行有限的自定义操作。
您的要求并未明确说明。您是想在移动服务上实现自定义API,还是想为移动应用程序实现整个基于expressjs的后端服务器?
如果要在自定义API脚本中定义多个路由,则不需要实现整个expressjs结构,只需要在此脚本中定义所有路由功能并需要依赖项。然后移动服务后端服务器启动,它将扫描自定义API文件夹中的脚本并注册路由。您可以参考https://azure.microsoft.com/en-us/documentation/articles/mobile-services-how-to-use-server-scripts/#api-routes了解更多详情。
如果您需要使用额外的自定义API模块,您可以利用git来共享和管理自定义脚本和依赖项。但是你仍然不需要实现整个expressjs框架。
您可以登录移动服务的KUDU控制台站点,浏览移动服务的整个结构和源代码。我们管理的脚本位于App_Data
文件夹中。
同时,如果您希望将整个基于expreejs的应用程序实现为移动应用程序的后端服务器,则可以利用Azure移动应用程序,有关详细信息,请参阅https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-node-backend-how-to-use-server-sdk/。