如何在单个数组中定义多个路由

时间:2017-06-01 05:42:14

标签: node.js routes restify

我有两个不同版本的Api v1和v2。这两个版本都有两个不同的文件夹。我在我的routes.js中分别调用两个版本的所有路由文件:

 module.exports = function (server) {
    const v1Path = "v1";
    const v2Path = "v2";
//v1 files
    require("./"+v1Path+"/routes/a")(server);
    require("./"+v1Path+"/routes/b")(server);
    require("./"+v1Path+"/routes/c")(server);
//v2 files
    require("./"+v2Path+"/routes/a")(server);
    require("./"+v2Path+"/routes/b")(server);
    require("./"+v2Path+"/routes/c")(server);
    require("./"+v2Path+"/routes/d")(server);

};

我在我的server.js中调用routes.js文件,如下所示:

var routes = require('./routes')(server);

现在我的问题是,我怎么能创建一个包含v1和v2的数组。并在单个循环中路由所有文件。请帮帮我们。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

module.exports = function (server) {
    const versions = {
       'v1': ['a', 'b', 'c'],
       'v2': ['a', 'b', 'c', 'd']
    };

    Object.keys(versions).forEach(function(version){
        versions[version].forEach(function(route){
            require('./' + version + '/routes/' + route)(server);
        });
    });
};