sails.js-如何指定可安装挂钩路线的顺序?

sails.js-如何指定可安装挂钩路线的顺序?,sails.js,Sails.js,我有一些策略,我正试图转换成可安装的钩子。 其中一个特别是身份验证步骤,它为用户添加了一个会话变量。我需要确保它首先触发,因为后续的钩子/控制器会查看会话以确定用户是谁 routes上的文档说,我可以指定是在所有自定义路由之前还是之后运行路由,但我看不到在另一个钩子之前指定一个钩子的方法 我尝试在初始化文档中指定的两个钩子的初始化步骤中添加sails.on。虽然它确实改变了初始化阶段的顺序,但似乎对处理路由的顺序没有任何影响 如果有任何建议,我们将不胜感激。正如您所指出的,目前无法重新排序挂钩,

我有一些策略,我正试图转换成可安装的钩子。 其中一个特别是身份验证步骤,它为用户添加了一个会话变量。我需要确保它首先触发,因为后续的钩子/控制器会查看会话以确定用户是谁

routes上的文档说,我可以指定是在所有自定义路由之前还是之后运行路由,但我看不到在另一个钩子之前指定一个钩子的方法

我尝试在初始化文档中指定的两个钩子的初始化步骤中添加sails.on。虽然它确实改变了初始化阶段的顺序,但似乎对处理路由的顺序没有任何影响


如果有任何建议,我们将不胜感激。

正如您所指出的,目前无法重新排序挂钩,但这并不意味着您无法以其他方式实现目标。钩子的routes特性非常方便,但是在这种情况下,您需要使用事件绑定路由,然后使钩子相互依赖,以确保路由以正确的顺序加载。许多核心帆钩就是这样工作的

如果要确保hook firsthook在secondhook之前加载其所有路由,可以将以下内容作为firsthook的初始化方法:

然后在secondhook中进行同样的操作,但要包裹在帆中。拦网后:


请注意,sails.after可以接受单个事件名称或要等待的数组。

如您所述,目前无法重新排序挂钩,但这并不意味着您无法以其他方式完成目标。钩子的routes特性非常方便,但是在这种情况下,您需要使用事件绑定路由,然后使钩子相互依赖,以确保路由以正确的顺序加载。许多核心帆钩就是这样工作的

如果要确保hook firsthook在secondhook之前加载其所有路由,可以将以下内容作为firsthook的初始化方法:

然后在secondhook中进行同样的操作,但要包裹在帆中。拦网后:


请注意,sails.after可以接受单个事件名称或要等待的数组。

看起来这已被请求,但尚未实现。看起来这已被请求,但尚未再次实现@sgress454您没有失望:。对于其他正在尝试使用他的解决方案的人,不要忽视这些问题。。。就像我一开始做的那样。加载路由器后,sails.router.bind才会工作。这正是我所需要的。再次感谢!再次@sgress454您没有让人失望:。对于其他正在尝试使用他的解决方案的人,不要忽视这些问题。。。就像我一开始做的那样。加载路由器后,sails.router.bind才会工作。这正是我所需要的。再次感谢!
initialize: function(cb) {

    sails.on('router:before', function () {

        sails.router.bind(routePath1, routeFn1);
        sails.router.bind(routePath2, routeFn2);
        sails.router.bind(routePath3, routeFn3);
        etc...

    });

}
initialize: function(cb) {

    sails.after('hook:firsthook:loaded', function() {

        sails.on('router:before', function () {

            sails.router.bind(routePath1, routeFn1);
            sails.router.bind(routePath2, routeFn2);
            sails.router.bind(routePath3, routeFn3);
            etc...

        });

    }

}