没有布局模板或JSON视图的流星铁路由器

时间:2014-04-07 14:50:31

标签: json meteor iron-router

使用Meteor Iron-Router我如何 将数据呈现为JSON或只是显示它" raw" (没有布局模板)

基本上我希望能够做到这样的事情:

this.route('rawdata', {
  path: '/raw/:collection',
  layoutTemplate: 'nolayout',
  template: 'raw'
})

其中 / raw / posts 会显示帖子的原始json(集合)。

谢谢!

备注

我了解JSON endpoint in Meteor 但是meteor-router已停产,Iron-Router似乎没有JSON端点功能。

我也看过https://atmospherejs.com/package/collection-api,但它不符合我的需要,因为我需要能够选择集合/记录的字段子集。

2 个答案:

答案 0 :(得分:10)

制作原始布局模板

<template name="direct_layout">
    {{> yield}}
</template>

然后使用它作为layoutTemplate直接使用您的模板。

this.route('rawdata', {
    path: '/raw/:collection',
    layoutTemplate: 'direct_layout',
    template: 'raw'
});

我不确定您是否将其用作实际代码的占位符。如果您打算使用JSON或实际原始文本呈现数据。您可能需要考虑使用服务器端路由。你应该做这样的事情:

请注意,这是服务器端代码,与在客户端运行的上述代码不同:

this.route('serverRoute', {
  where: 'server',
  path: '/your-route',
  action: function() {
    var data = {this_is:'a json object'}


    this.response.writeHead(200, {'Content-Type': 'application/json'});
    this.response.end(JSON.stringify(data));
  }
});

查看Iron-Router上的服务器端呈现:https://github.com/EventedMind/iron-router/blob/master/DOCS.md#server-side-routing

答案 1 :(得分:2)

请参阅:https://github.com/EventedMind/iron-router/issues/114

(注意修改内容类型的评论。)