Реализация объединения таблиц в бэкенде мобильных приложений Node.js с использованием SQL
Поскольку мобильные приложения Azure не предоставляют способ создания связей между таблицами, я решил создать собственный API-интерфейс в своем бэкэнде Node.js для возврата данных из связанных таблиц. Идея заключалась в том, чтобы реализовать соединения в бэкэнде с использованием SQL, как объяснено в документе Mobile Services Doc.
Проблема в том, что я использую новые мобильные приложения, а не старые мобильные службы, поэтому приведенный выше код больше не работает. Как я понимаю, архитектура изменилась с Mobile Service на Mobile Apps, а Node.js SDK - это пакет промежуточного программного обеспечения. Поэтому теперь мы используем модуль azure-mobile-apps/src/data для обработки SQL-операций.
Итак, теперь мне нужно сделать что-то вроде этого, чтобы прочитать из таблицы в Custom API внутри внутреннего интерфейса Node:
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 для возврата данных из связанных таблиц. Я должен был бы использовать циклы и много запросов к базе данных, которая побеждает цель.
Есть ли способ реализовать объединения в серверной части с помощью SQL в новом SDK Mobile Apps Node.js? Или любой другой способ лучше?
Большое спасибо!
1 ответ
Вы можете создать 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 для аналогичного сценария.
Между тем, вы можете создать таблицу View в базе данных SQL Azure, которая содержит stmt соединения, для легкого использования в сценариях Easy APIs и поддержки stmt View SQL.