middleware_stack.js:31未捕获错误:名称为“route”的处理程序已存在。铁路由器流星

时间:2016-03-16 09:37:52

标签: meteor iron-router

我的代码工作正常,直到昨晚,我突然收到此错误,路由根本无法正常工作。

middleware_stack.js:31Uncaught Error: Handler with name 'route' already exists.

对于这样的简单路线:

Router.route('/admin/dashboard', {
   template:"adminDashboard"
});

Router.route('/admin/create/table', {
  template:"create_table"
});

我无法弄清楚错误,我检查了所有路线。还有其他人遇到过这个错误吗?

3 个答案:

答案 0 :(得分:60)

这是known issue。最新版本的Google Chrome和Microsoft Edge会出现此问题(编辑:现在也是Firefox)。

最近的铁路由器更新修复了它,它应该由meteor update iron:middleware-stack修复。

修改:如果重新启动服务器时middleware-stack包回滚,请检查@ bigsan的评论

答案 1 :(得分:4)

编辑:此issue已修复为铁:中间件堆栈1.1.0。

我有同样的问题。奇怪的是,我在Chrome 51上遇到了这个问题,但在Chrome 46上没有。我想这与javascript引擎中的更新有关,如果我弄清楚到底是什么,我会在这里发帖。

与此同时,我使用的解决方法是明确地为路由添加名称。它们并不重要,它们只需要声明,否则铁路由器认为路线的名称是“路线”。"所以你的代码将成为:

Router.route('/admin/dashboard', {
   name: "Boaty_McBoatface",
   template:"adminDashboard"
});

Router.route('/admin/create/table', {
   name: "Guacamole",
   template:"create_table"
});

答案 2 :(得分:0)

首先,看看here并查看何时抛出此错误。所以,实际上我没有遇到过这个错误,但我已经读过了。进一步查看official guidepost。我看到您正在尝试为路由/admin创建一个子目录。通常,我使用this.render()函数执行此操作。关于布局我使用this.layout()所以我认为如果你使用这些函数并删除template:"adminDashboard"。它会起作用。