流星和铁路由器:当id不存在时引发404

我正在为我的网址使用Iron Router,我有这条路线:

this.route('regionEdit', {
  path: '/region/:_id',
  waitOn: function() {
    return Meteor.subscribe('region', this.params._id);
  },
  data: function() {
    return Regions.findOne({
      _id: this.params._id
    });
  }
});

当我使用这条路径时这很好用http://example.com/region/xgok3Etc5mfhtmD7j

其中xgok3Etc5mfhtmD7j是区域的_id.但是,当我访问http://example.com/region/whatever时,页面呈现正常,但没有数据.

如何为此引发404错误?

不是404,但你可以通过做这样的事情来渲染一个未找到的页面.

this.route('regionEdit', {
  path: '/region/:_id',
  waitOn: function() {
    return Meteor.subscribe('region', this.params._id);
  },
  data: function() {
    var region = Regions.findOne({
      _id: this.params._id
    });
    if(!region)
      this.render("notFound");
    else
      return region;
  }
});
相关文章
相关标签/搜索