我正在使用iron:router创建一个流星包,效果很好。 该软件包的路由逻辑非常具体。
但是,只要我在Meteor应用程序中添加此程序包(也使用铁路由器),就会调用Meteor应用程序定义的钩子(onBeforeAction,onAfterAction,...)包创建的路由。 我想阻止我的包路由执行应用程序的钩子。
是否有一段简单的代码我可以用来隔离我的包裹的路线与"外部"挂钩?也许我可以创建一个特定的RouteController?
我的最后一个选择是从头开始实现路由器......
谢谢!
答案 0 :(得分:1)
解决我的问题的代码如下:
let MyRouter = new Iron.Router;
MyRouter.onBeforeAction(Iron.Router.bodyParser.json());
MyRouter.onBeforeAction(Iron.Router.bodyParser.urlencoded({extended: false}));
解决方案是声明一个新的隔离路由器。路由器声明下的2行可以检索POST请求的数据。
答案 1 :(得分:0)
是的,您需要创建隔离控制器:
var MyPackageController = RouteController.extend({
onBeforeAction: function () { ... },
onAfterAction: function () { ... }
/* other options */
});
Router.map(function () {
this.route('packageRoute', {
controller: MyPackageController
/* other options */
});
});