routes

routes特性允许在加载的时候一个自定义的钩子简单地绑定新的路由到一个Sails app中。如果实现了,routes应该是一个要么带有一个before关键词,要么带有一个after关键词或者两者皆有的对象。那些关键词的值反过来应该也是对象,其中关键词是 route addresses,值是带有标准(req, res, next)参数的路由操作函数。任何指定在before对象的路由都会绑定在自定义的用户路由(定义在sails.config.routes)和blueprint routes之前(定义在 sails.config.routes)。相反地,指定为after对象的路由将会绑定到自定义的用户路由和blueprint routes之后。比如,考虑下面的count-requests钩子:

module.exports = function (sails) {

   return {

      initialize: function(cb) {
         this.numRequestsSeen = 0;
         this.numUnhandledRequestsSeen = 0;
         return cb();
      },

      routes: {
         before: {
            'GET /*': function (req, res, next) {
               this.numRequestsSeen++;
               return next();
            }
        },
        after: {
            'GET /*': function (req, res, next) {
               this.numUnhandledRequestsSeen++;
               return next();
            }
        }
    };
};

这个钩子将会处理所有的请求通过在before对象中提供的函数,然后递增它的numRequestsSeen变量。它也会处理任何未被处理的请求通过在after对象中提供的函数--也就是任何没有通过一个自定义路由配置或者一个blueprint绑定到app的路由。

在钩子中这两个变量sails.hooks["count-requests"].numRequestsSeensails.hooks["count-requests"].numUnhandledRequestsSeen的设置对于在Sails app中的其他模块也是可用的

results matching ""

    No results matching ""