使用SQL实现移动应用程序Node.js后端的表连接

由于Azure移动应用程序不提供创build表间关系的方法,因此我决定在Node.js后端创build一个自定义API以从相关表中返回数据。 这个想法是使用SQL在后端实现连接,就像移动服务文档中所解释的那样。

问题是我正在使用新的移动应用程序,而不是旧的移动服务,所以上面的代码不再工作。 据我所知,体系结构从移动服务改为移动应用程序,Node.js SDK是一个快速的中间件软件包。 所以现在我们利用azure-mobile-apps / src / data模块来处理sql操作。

所以我现在必须做这样的事情来从Node后端的Custom API中的表中读取:

var queries = require('azure-mobile-apps/src/query'); module.exports = { "get": function (req, res, next) { var myTable = req.azureMobile.tables('TableName'); var query = queries.create('TableName'); query.where({'id':req.query.userId}); myTable.read(query).then(function(data){ res.send({ some: data }); }); } }; 

但是由于SQL不再暴露,我不能使用JOIN命令从相关表中返回数据。 我将不得不使用循环和许多请求到数据库,这是失败的目的。

– 是否有办法在新的Mobile Apps Node.js SDK上使用SQL实现后端连接? 还是其他更好的方法?

非常感谢你!

你可以生成join sql stmt,并利用一个sqlQuery对象可以包含sql stmt,然​​后使用data.execute函数直接执行sql stmt。 对于类似的情况,你可以参考https://github.com/Azure/azure-mobile-apps-node/blob/master/samples/custom-api-sql-stmt/api/completeall.js示例。

同时,您可以在Azure SQL数据库中创build一个包含连接标记的View表格,以便在Easy APIs脚本中使用并保持View SQL语句。