Push notification 查询另一个easy表以获取推送通知消息

Push notification 查询另一个easy表以获取推送通知消息,push-notification,azure-mobile-services,Push Notification,Azure Mobile Services,我在Azure应用程序后端配置了两个easy表: 服务带有Id和ServiceName属性 ServiceDetails带有Id、ServiceID和ServiceDetailDate属性 每当插入新的ServiceDetails条目时,我都希望通过推送通知向用户发送一条消息,其中包含有关ServiceDetailDate和ServiceName的信息 所以我的问题是如何查询另一个表以从中获取信息?在这种情况下,ServiceID(来自ServiceDetails表)是已知的,因此我想从Se

我在Azure应用程序后端配置了两个easy表:

  • 服务
    带有
    Id
    ServiceName
    属性
  • ServiceDetails
    带有
    Id
    ServiceID
    ServiceDetailDate
    属性
每当插入新的
ServiceDetails
条目时,我都希望通过推送通知向用户发送一条消息,其中包含有关
ServiceDetailDate
ServiceName
的信息

所以我的问题是如何查询另一个表以从中获取信息?在这种情况下,
ServiceID
(来自
ServiceDetails
表)是已知的,因此我想从
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.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) {
                //..
            });
        });
}); 

您可以使用以下代码在
ServiceDetails.js
中查询另一个简单表

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) {
                //..
            });
        });
}); 

太棒了,谢谢你。它工作正常,我按时完成了我的应用:)太棒了,谢谢。它工作正常,我按时完成了我的应用:)