Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor:如何最好地更新服务器或客户端上的记录_Meteor - Fatal编程技术网

Meteor:如何最好地更新服务器或客户端上的记录

Meteor:如何最好地更新服务器或客户端上的记录,meteor,Meteor,我有一个带有data trackingId的链接列表,它基本上就是Random.id()的值。我目前的设置方式是,单击链接时,跟踪id将发送到服务器,并更新相关集合 问题是客户端不会自动更新,它需要页面刷新来更新链接列表 我需要设置一个活动标志并增加点击次数。我可以通过使用我要更新的集合的\u id作为trackingId来实现这一点(因为不受信任的代码只能通过\u id进行更新) 但是,我不希望客户端能够运行将设置active标志或增加clickcount的查询,从而绕过单击链接的整个点 最好

我有一个带有
data trackingId
的链接列表,它基本上就是
Random.id()的值。我目前的设置方式是,单击链接时,跟踪id将发送到服务器,并更新相关集合

问题是客户端不会自动更新,它需要页面刷新来更新链接列表

我需要设置一个
活动
标志并增加
点击次数
。我可以通过使用我要更新的集合的
\u id
作为trackingId来实现这一点(因为不受信任的代码只能通过
\u id
进行更新)

但是,我不希望客户端能够运行将设置
active
标志或增加
clickcount
的查询,从而绕过单击链接的整个点

最好的方法是什么?我唯一能想到的可能是在发布/订阅方法(我不太熟悉)中设置某种权限,或者在调用
Meteor.call('serverMethod',trackingId)
时使用回调,这样我就可以再次拉回链接列表。我认为最好使用客户端并设置权限,但我不确定我到底需要做什么


欢迎所有建议:)

我使用回调函数解决了这个问题。如果有人有更好的建议,我愿意接受

在客户端代码中:

Meteor.call('updateTracking', Session.get('trackingId'), function(err, data){
                                                       if(err){
                                                          console.log(err)
                                                       }
                                                       Session.set('links', data);
                                                     });
在server.js中

 updateTracking: function(trackingId){
     console.log('trackingId: ' + trackingId)
    Tracking.update({  trackingId: trackingId},
                              {$set: {active: 0},
                               $inc: {clickcount: 1}
                           });
  return Meteor.call('getLinks');
 },

在我的记忆中,你可以创建自己的“反应变量”。。但我建议使用Meteor.call。它为我节省了很多时间:黛雅,我正在使用Meteor.call,它现在可以工作,只是没有反应。我会考虑一下的,干杯:)