查询另一个简单的 table 以获取推送通知消息
Querying another easy table for push notification message
我在我的 Azure 应用后端配置了两个简单的 table:
Services
具有 Id
和 ServiceName
属性
ServiceDetails
具有 Id
、ServiceID
和 ServiceDetailDate
属性
每当插入新的 ServiceDetails
条目时,我想通过推送通知向我的用户发送一条消息,其中包含有关 ServiceDetailDate
和 ServiceName
的信息。
所以我的问题是如何查询另一个 table 以从中获取信息?在这种情况下,ServiceID
(来自 ServiceDetails
table)是已知的,因此我想从 Services
中获取 ServiceName
。我应该添加哪些代码以从 serviceInfo
对象(在有效负载消息中)中提取 ServiceName
到我的脚本中以满足此请求?
实际上我不确定查询和 serviceInfo 指令,所以如果我的代码有误,请毫不犹豫地指出正确的方向。
var azureMobileApps = require('azure-mobile-apps'),
promises = require('azure-mobile-apps/src/utilities/promises'),
logger = require('azure-mobile-apps/src/logger'),
queries = require('azure-mobile-apps/src/query');
var table = azureMobileApps.table();
table.insert(function (context) {
var query = queries.create('Services');
var serviceInfo = query.where({'Id': context.item.ServiceID});
var payload = '{"messageParam": "Your service -service name- has been added on ' + context.item.ServiceDetailDate + '" }';
return context.execute()
.then(function (results) {
if (context.push) {
context.push.send(null, payload, function (error) {
if (error) {
logger.error('Error while sending push notification: ', error);
} else {
logger.info('Push notification sent successfully!');
}
});
}
return results;
})
.catch(function (error) {
logger.error('Error while running context.execute: ', error);
});
});
module.exports = table;
感谢您的帮助。
您可以使用以下代码在ServiceDetails.js
中查询另一个简单的table。
table.insert(function (context) {
return context.tables('Services')
.where({ Id: context.item.ServiceID })
.select('ServiceName')
.read()
.then(function (data) {
var message = 'Your service ' + data[0].ServiceName + ' has been added on ' + context.item.ServiceDetailDate;
var payload = '{"messageParam": "' + message + '"}';
return context.execute().then(function (results) {
//..
});
});
});
我在我的 Azure 应用后端配置了两个简单的 table:
Services
具有Id
和ServiceName
属性ServiceDetails
具有Id
、ServiceID
和ServiceDetailDate
属性
每当插入新的 ServiceDetails
条目时,我想通过推送通知向我的用户发送一条消息,其中包含有关 ServiceDetailDate
和 ServiceName
的信息。
所以我的问题是如何查询另一个 table 以从中获取信息?在这种情况下,ServiceID
(来自 ServiceDetails
table)是已知的,因此我想从 Services
中获取 ServiceName
。我应该添加哪些代码以从 serviceInfo
对象(在有效负载消息中)中提取 ServiceName
到我的脚本中以满足此请求?
实际上我不确定查询和 serviceInfo 指令,所以如果我的代码有误,请毫不犹豫地指出正确的方向。
var azureMobileApps = require('azure-mobile-apps'),
promises = require('azure-mobile-apps/src/utilities/promises'),
logger = require('azure-mobile-apps/src/logger'),
queries = require('azure-mobile-apps/src/query');
var table = azureMobileApps.table();
table.insert(function (context) {
var query = queries.create('Services');
var serviceInfo = query.where({'Id': context.item.ServiceID});
var payload = '{"messageParam": "Your service -service name- has been added on ' + context.item.ServiceDetailDate + '" }';
return context.execute()
.then(function (results) {
if (context.push) {
context.push.send(null, payload, function (error) {
if (error) {
logger.error('Error while sending push notification: ', error);
} else {
logger.info('Push notification sent successfully!');
}
});
}
return results;
})
.catch(function (error) {
logger.error('Error while running context.execute: ', error);
});
});
module.exports = table;
感谢您的帮助。
您可以使用以下代码在ServiceDetails.js
中查询另一个简单的table。
table.insert(function (context) {
return context.tables('Services')
.where({ Id: context.item.ServiceID })
.select('ServiceName')
.read()
.then(function (data) {
var message = 'Your service ' + data[0].ServiceName + ' has been added on ' + context.item.ServiceDetailDate;
var payload = '{"messageParam": "' + message + '"}';
return context.execute().then(function (results) {
//..
});
});
});