Реализация объединения таблиц в бэкенде мобильных приложений 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.

Другие вопросы по тегам