我正在构建一个聊天,并根据当前用户选择的聊天室,我想使用此功能发布消息:
Meteor.publish('messages',function(){
return Messages.find(
{chatId: 'QMMjBgCvLcnLvJPvx'},
sort:{timestamp: -1}
});
});
现在 chatId 仍然是硬编码的,但它需要是动态的。 chatId 在 URL 中传递(例如.../chat/QMMjBgCvLcnLvJPvx
)。在基于客户端的代码中,我用来读取 chatId
:
var chatId = Router.current().params._id;
铁路由器
但这在服务器端不起作用。有没有办法将 chatId
从 URL 发送到服务器,所以我使用上面提到的 Meteor.publish。任何帮助表示赞赏:)
最佳答案
订阅时传入变量即:
Meteor.subscribe("messages", {chatId: Session.get("current-room")})
在出版物中:
Meteor.publish('messages',function(chatId){
return Messages.find(
{chatId: chatId},
sort:{timestamp: -1}
});
});
关于服务器端 meteor .publish : working with a client variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37666322/