我一直在广泛搜索此答案,但只找到了解决旧Azure应用服务而非新Azure移动应用的解决方案。
在这个例子中,在表的表脚本中,我将经过身份验证的用户ID插入到同一个表的userID字段中。
table.insert(function (context) {
context.item.userId = context.user.id;
return context.execute();
});
但是,如果还想将其插入与用户要求插入的表不同的表中?如何从表脚本中访问此其他表?
之前,如我发现的所有解决方案所示,您可以执行" tables.getTable(' otherTable')"从同一SQL DB访问另一个表。但是现在我收到了一个错误。
阅读'Azure Mobile Apps - Node SDK'文档,我找到了" context.tables()"函数,似乎从db获取不同的表。但是当我使用代码插入时,没有任何反应:
table.insert(function (context) {
var table2 = context.tables('table2');
table2.insert({string_column: '1234'});
return context.execute();
});
谢谢!
答案 0 :(得分:2)
找到正确的方法。这是我的代码:
JLabel lblNewLabel = new JLabel("");
lblNewLabel.setIcon(new ImageIcon("C:\\Users\\Faisal\\Desktop\\New folder\\picture-1.thumbnail.png"));
lblNewLabel.setBounds(0, 0, 515, 367);
frame1.add(lblNewLabel);
首先,我声明一个中间件函数,每次调用insert时都会执行该函数。在其中我从我想要访问的表中调用insert函数,并返回一个promise。 (那是我的错误)
然后,我将中间件与使用“use”函数运行脚本的表的insert函数相关联。
最后我正常运行insert函数。
答案 1 :(得分:0)
在我的情况下,我想在生成id之后将一条记录插入到另一个表中,因此我将其作为回调的一部分写入。
table.insert(function(context) {
return context.execute().then(function(results) {
var table2 = context.tables('table_name');
var newRecord = {
id: results.id,
some: "data",
more: "123"
};
table2.insert(newRecord);
return results;
});
});