流星路由参数和数据库查询

时间:2015-07-01 00:00:38

标签: meteor

我是Meteor的新手(仅仅2天,也是Mongo和整个筹码的新手),所以请耐心等待。我现在正在为应用程序布置高级设计模式。 我需要做的一件事是允许用户指定一个URL(例如http://meteor.example.co/XXXXX2016),然后从数据库中获取文档,其中一个字段(不是ID)等于XXXXX2016部分的URL。

根据我的想法到目前为止,解决这个问题的一种方法似乎是: 1)让XXXXX2016成为路由参数(最有可能使用Iron Router进行路由) 2)让客户端查询该文档(或者有更好的方法用pub / sub执行此操作吗?) 3)使用该文档的数据表格(以及最终的相关和子文档)更新模板。

来自网址(或路线)的参数控制每个子网站的横幅徽标""以及许多其他事情,并在应用程序内的入口点的催化剂。我是朝着正确的大方向前进还是在进一步前我还应该考虑其他方法/考虑因素?

我不确定这是否应该更多地面向客户端或服务器,或者如何最好地在Meteor中构建这种范例。

我也知道这可以被视为一个广泛的,开放式的问题/答案。但是如果他们愿意分享,我想听听更有经验的Meteor同行的任何反馈意见。

TIA!

1 个答案:

答案 0 :(得分:2)

以下两种方式:

代码:

/lib在客户端和服务器上运行

/server仅在服务器上运行

/client仅在客户端上运行

  • /lib
  • 中创建数据库集合
  • Iron Router从URL中读取特定路径的参数。
  • IR接受此参数并进行数据库订阅。
  • /server中为此订阅编写相应的发布功能。
  • 在模板JS中,您可以直接访问数据库集合,因为路由现已订阅它。

OR

  • /lib
  • 中创建数据库集合
  • 订阅Iron Router中的DB Collection,位于/lib
  • /server中为此订阅编写相应的发布功能。
  • Iron Router从URL中读取特定路径/路径的参数。
  • IR接受此参数并执行数据库查询,返回游标或对象数组。
  • IR使用上面的信息设置路线的data上下文。
  • 在您的路线模板JS中,您可以访问数据并使用Iron Router返回的数据执行功能 - 只需搜索模板回调中如何使用路径的数据上下文。