.routes
routes
功能允许自定义钩子在加载时轻松将新路由绑定到 Sails 应用程序。如果实现,routes
应该是一个对象,包含 before
键、after
键或两者。这些键的值应该依次是对象,其键是 路由地址,其值是具有标准 (req, res, next)
参数的路由处理函数。在 before
对象中指定的任何路由都将在自定义用户路由(如在 sails.config.routes 中定义)和 蓝图路由 之前 绑定。相反,在 after
对象中指定的路由将在自定义路由和蓝图路由之后 绑定。例如,考虑以下 count-requests
钩子
module.exports = function (sails) {
// Declare a var that will act as a reference to this hook.
var hook;
return {
initialize: function(cb) {
// Assign this hook object to the `hook` var.
// This allows us to add/modify values that users of the hook can retrieve.
hook = this;
// Initialize a couple of values on the hook.
hook.numRequestsSeen = 0;
hook.numUnhandledRequestsSeen = 0;
// Signal that initialization of this hook is complete
// by calling the callback.
return cb();
},
routes: {
before: {
'GET /*': function (req, res, next) {
hook.numRequestsSeen++;
return next();
}
},
after: {
'GET /*': function (req, res, next) {
hook.numUnhandledRequestsSeen++;
return next();
}
}
}
};
};
此钩子将通过 before
对象中提供的函数处理所有请求,并增加其 numRequestsSeen
变量。它还将通过 after
对象中提供的函数处理任何未处理 的请求——也就是说,任何没有通过自定义路由配置或蓝图在应用程序中绑定的路由。
在钩子中设置的两个变量将作为
sails.hooks["count-requests"].numRequestsSeen
和sails.hooks["count-requests"].numUnhandledRequestsSeen
可用于 Sails 应用程序中的其他模块。