Есть ли способ доступа к данным из другой таблицы во время table.read - мобильное приложение Azure - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь получить данные из другой базы данных, прежде чем читать данные из таблицы. Тем не менее, я не могу найти способ получить к нему доступ должным образом.

Лучшее, что я получил на данный момент, основано на некоторых других примерах как на документации Microsoft, так и на StackOverflow, но все они, похоже, дают сбой.

table.read(function (context) {
    var results = context.tables("table2").read();

    var text = results[0].column;

    context.query.where({ columnName: text });

    return context.execute();
});

Я получаю сообщение об ошибке, что столбец не существует.

1 Ответ

0 голосов
/ 18 июня 2019

Согласно вашему описанию, если я не пойму неправильно, вы захотите запросить у table2 операции table1 в скриптах EasyTables.

мы можем использовать "use()" для пользовательских middleware для указания промежуточное программное обеспечение , которое будет выполняться для каждого запроса к таблице в качестве описания в документе Azure-Mobile-Apps SDK на

EG

var queries = require('azure-mobile-apps/src/query');
var insertMiddleware = function(req,res,next){
    var table = req.azureMobile.tables('table2'),
    query = queries.create('table2')
            .where({ TestProperty : req.body.testproperty });
    table.read(query).then(function(results) {
        if(results){
            req.someStoreData = somehander(results); //some hander operations here to get what you want to store and will use in next step
            next();
        }else{
            res.send("no data");
        }
    });
};

table.insert.use(insertMiddleware, table.operation);
table.insert(function (context) {
   console.log(context.req.someStoreData);
   return context.execute();
});

Еще пример:

async function filterByAllowedDomain(context) {
  var domains = await context.tables('domains')
    .where({ allowed: true })
    .read();

  var categories = await context.tables('categories')
    .where(function (ids) {
        return this.domainId in ids;
    }, domains.map(d => d.id))
    .read();

  context.query.where(function (ids) {
    return this.categoryId in ids;
  }, categories.map(c => c.id));

  return context.execute(); }

Модуль tables в sdk azure-mobile-apps-node содержит функциональные возможности для добавления таблиц в мобильное приложение Azure.Он возвращает маршрутизатор, который можно подключить к экспресс-приложению с некоторыми дополнительными функциями для регистрации таблиц.Который фактически использует Azure SQL (служба базы данных SQL Server в Azure).

Надеюсь, это поможет.

...