Routing Meteor,使用铁路由器进行动态路由
我们正在开发一个聊天应用程序,现在我们正在支持多个聊天室。所以我想弄清楚如何设置iron路由器来正确地支持它。我设想这种工作方式是,当用户创建一个房间时,会推送到存储所有房间列表的数据库。即Routing Meteor,使用铁路由器进行动态路由,routing,meteor,iron-router,Routing,Meteor,Iron Router,我们正在开发一个聊天应用程序,现在我们正在支持多个聊天室。所以我想弄清楚如何设置iron路由器来正确地支持它。我设想这种工作方式是,当用户创建一个房间时,会推送到存储所有房间列表的数据库。即 rooms={roomlist:['room1','room2'…]} 现在在Iron Router中,我想设置一个如下所示的路由 Router.map(function () { this.route('chatroom', { path: '/chatroom/:room_name' }
rooms={roomlist:['room1','room2'…]}
现在在Iron Router中,我想设置一个如下所示的路由
Router.map(function () {
this.route('chatroom', {
path: '/chatroom/:room_name'
});
});
路由器只允许:room_名称与数据库中的一个roomlist房间匹配的路由。这可能吗?我将如何设置它?我将有一个这样的房间集合
Rooms = new Meteor.Collection("rooms");
然后,当你插入一个新房间时,给它起个名字
也别忘了出版你的单人房
Meteor.publish("singleRoom", function(room_name){
return Rooms.find({name: room_name});
})
然后在你的路线上使用
Router.map(function () {
this.route('chatroom', {
path: '/chatroom/:room_name',
waitOn: function(){
return Meteor.subscribe("singleRoom", this.params.room_name);
},
data: function(){
return Rooms.findOne({name: this.params.room_name});
}
});
});
除了一件关键的事情外,这一切都很好。如果
Rooms.findOne({name:this.params.Rooms\u name})
没有返回我希望重定向页面的数据。也许我只是很了解这一点,这就是它正在做的,或者它需要稍微修改一下。也许可以尝试设置一个notFoundTemplate