Code coverage report for lib/Router.js

Statements: 100% (11 / 11)      Branches: 100% (4 / 4)      Functions: 100% (3 / 3)      Lines: 100% (11 / 11)      Ignored: none     

All files » lib/ » Router.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54                        1   10                   1   9   9   9 6                         1   1   1       1  
/**
 * @file Router
 * @author Leon(leon@outlook.com)
 */
 
/**
 * 简易的路由器
 *
 * @class
 * @constructor Router
 * @param {Array.<Object>} routes 路由配置
 */
function Router(routes) {
 
    this.routes = routes || [];
 
}
 
/**
 * 对一个请求进行路由
 *
 * @param {!Object} request 请求对象
 * @return {?Object}
 */
Router.prototype.route = function (request) {
 
    for (var i = this.routes.length - 1; i >= 0; i--) {
 
        var route = this.routes[i];
 
        if (route.path === request.path) {
            return route;
        }
 
    }
 
};
 
/**
 * 添加路由配置
 *
 * @param {!Object} config 配置
 * @return {module:Route}
 */
Router.prototype.addRoute = function (config) {
 
    this.routes.push(config);
 
    return this;
 
};
 
module.exports = Router;