有没有办法在 table.read 期间从另一个 table 访问数据 - Azure 移动应用程序

Is there a way to access data from another table during table.read - Azure Mobile App

我试图在读取 table 中的数据之前从另一个数据库获取数据。但是,我似乎无法找到正确访问它的方法。

到目前为止,我得到的最好的结果是基于 Microsoft 文档和 Whosebug 上的一些其他示例,但它们似乎都失败了。

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

    var text = results[0].column;

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

    return context.execute();
});

执行此操作时出现错误,提示该列不存在。

按照你的描述,如果我没理解错的话,你想在EasyTables脚本中查询table2 in table1操作。

我们可以利用 "use()" 自定义 middleware 来指定 middleware 针对 [=37] 的每个请求执行=] 作为 azure-mobile-apps sdk 在

文档中的描述

例如

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(); }

azure-mobile-apps-node sdk 中的 tables 模块包含将 table 添加到 Azure 移动应用程序的功能。它 returns 一个可以附加到 express 应用程序的路由器,具有一些用于注册 table 的附加功能。这实际上利用了 Azure SQL(SQL Azure 上的服务器数据库服务)。

希望对您有所帮助。