gpt4 book ai didi

javascript - Meteor:响应式(Reactive)连接公开中间数据

转载 作者:行者123 更新时间:2023-11-28 07:10:06 24 4
gpt4 key购买 nike

我正在使用publish-composite执行响应式(Reactive)连接(我确信特定的包并不重要)。我看到中间数据被推送到客户端。

在以下示例中:

Meteor.publishComposite('messages', function(userId) {  
return {
find: function() {
return Meteor.users.find(
{ 'profile.connections.$': userId }
);
},
children: [{
find: function(user) {
return Messages.find({author: user._id});
}
}]
}
});

profile.connections 中具有 userId 的所有用户都会暴露给客户端。我知道可以创建一个 mongodb 投影,这样敏感的东西就不会暴露。但我想知道是否可以阻止第一个 find() 查询游标到达客户端。

最佳答案

您是否尝试仅针对特定用户发布消息(如果该用户与登录用户有连接)?如果是这样,也许这样的事情会起作用:

Meteor.publishComposite('messages', function(userId) {
return {
find: function() {
return Meteor.users.find(this.userId);
},
children: [{
find: function(user) {
return Meteor.users.find(
{ 'profile.connections.$': userid }
);
},
children: [{
find: function(connection, user) {
return Messages.find({author: connection._id});
}
}]
}]
};
});

这相当于:

Meteor.publish('message',function(userId) {
var user = Meteor.users.find({_id : this.userId, 'profile.connections.$' : userId});

if (!!user) {
return Messages.find({author: userId});
}

this.ready();
});

关于javascript - Meteor:响应式(Reactive)连接公开中间数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31392095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com