更新到 Meteor 1.3 后出错 - 名称为 'onBeforeAction' 的处理程序已存在
Error after update to Meteor 1.3 - Handler with name 'onBeforeAction' already exists
我的应用程序一直在运行,直到我将其更新到 Meteor 1.3。现在我得到这个错误:
Exception in callback of async function: Error: Handler with name 'onBeforeAction' already exists.
at MiddlewareStack._create (http://localhost:3000/packages/iron_middleware-stack.js?hash=8a2aa73e86a32698fb9f60cea452e0ecb2e72b7f:190:13)
at MiddlewareStack.push (http://localhost:3000/packages/iron_middleware-stack.js?hash=8a2aa73e86a32698fb9f60cea452e0ecb2e72b7f:206:22)
at http://localhost:3000/packages/iron_middleware-stack.js?hash=8a2aa73e86a32698fb9f60cea452e0ecb2e72b7f:224:12
at Array.forEach (native)
at Function._.each._.forEach (http://localhost:3000/packages/underscore.js?hash=8de51f9d86e95ae2ffee15a8db324a1decccba3e:139:11)
at MiddlewareStack.append (http://localhost:3000/packages/iron_middleware-stack.js?hash=8a2aa73e86a32698fb9f60cea452e0ecb2e72b7f:220:5)
at http://localhost:3000/packages/iron_middleware-stack.js?hash=8a2aa73e86a32698fb9f60cea452e0ecb2e72b7f:226:19
at Array.forEach (native)
at Function._.each._.forEach (http://localhost:3000/packages/underscore.js?hash=8de51f9d86e95ae2ffee15a8db324a1decccba3e:139:11)
at MiddlewareStack.append (http://localhost:3000/packages/iron_middleware-stack.js?hash=8a2aa73e86a32698fb9f60cea452e0ecb2e72b7f:220:5)
我唯一使用 onBeforeAction
的地方是在我的 iron-router 路由控制器中。它们都在同一个 router.js
文件中。
我定义了几个路由控制器,首先是扩展 RouteController
的 ApplicationController
,然后是扩展 ApplicationController
.
的各种控制器
ApplicationController = RouteController.extend({
onBeforeAction: function() {
//some code
this.next();
}
});
SomeController = ApplicationController.extend({
onBeforeAction: function() {
//some code
this.next();
}
});
根据错误消息,我无法找出问题所在或在哪里寻找问题。
错误消息中提到的包版本是:
iron:router@1.0.12
iron:middleware-stack@1.0.11
underscore@1.0.6
非常感谢一些正确方向的指示。
首先,如果可以更换路由器并切换到 FlowRouter
,我强烈推荐您。这是目前官方的 Meteor 路由器,如下所述:Meteor Guide
试试这个:meteor update iron:middleware-stack
.
看来你的问题与this issue有关,已在1.1.0
版本中修复。
我的应用程序一直在运行,直到我将其更新到 Meteor 1.3。现在我得到这个错误:
Exception in callback of async function: Error: Handler with name 'onBeforeAction' already exists.
at MiddlewareStack._create (http://localhost:3000/packages/iron_middleware-stack.js?hash=8a2aa73e86a32698fb9f60cea452e0ecb2e72b7f:190:13)
at MiddlewareStack.push (http://localhost:3000/packages/iron_middleware-stack.js?hash=8a2aa73e86a32698fb9f60cea452e0ecb2e72b7f:206:22)
at http://localhost:3000/packages/iron_middleware-stack.js?hash=8a2aa73e86a32698fb9f60cea452e0ecb2e72b7f:224:12
at Array.forEach (native)
at Function._.each._.forEach (http://localhost:3000/packages/underscore.js?hash=8de51f9d86e95ae2ffee15a8db324a1decccba3e:139:11)
at MiddlewareStack.append (http://localhost:3000/packages/iron_middleware-stack.js?hash=8a2aa73e86a32698fb9f60cea452e0ecb2e72b7f:220:5)
at http://localhost:3000/packages/iron_middleware-stack.js?hash=8a2aa73e86a32698fb9f60cea452e0ecb2e72b7f:226:19
at Array.forEach (native)
at Function._.each._.forEach (http://localhost:3000/packages/underscore.js?hash=8de51f9d86e95ae2ffee15a8db324a1decccba3e:139:11)
at MiddlewareStack.append (http://localhost:3000/packages/iron_middleware-stack.js?hash=8a2aa73e86a32698fb9f60cea452e0ecb2e72b7f:220:5)
我唯一使用 onBeforeAction
的地方是在我的 iron-router 路由控制器中。它们都在同一个 router.js
文件中。
我定义了几个路由控制器,首先是扩展 RouteController
的 ApplicationController
,然后是扩展 ApplicationController
.
ApplicationController = RouteController.extend({
onBeforeAction: function() {
//some code
this.next();
}
});
SomeController = ApplicationController.extend({
onBeforeAction: function() {
//some code
this.next();
}
});
根据错误消息,我无法找出问题所在或在哪里寻找问题。
错误消息中提到的包版本是:
iron:router@1.0.12
iron:middleware-stack@1.0.11
underscore@1.0.6
非常感谢一些正确方向的指示。
首先,如果可以更换路由器并切换到 FlowRouter
,我强烈推荐您。这是目前官方的 Meteor 路由器,如下所述:Meteor Guide
试试这个:meteor update iron:middleware-stack
.
看来你的问题与this issue有关,已在1.1.0
版本中修复。