重定向express.js中的多个路由

时间:2015-02-25 22:52:51

标签: javascript node.js express

我正在开发一个快速应用程序,并且是框架的新手。我有一些路线我想重定向到一个没有做类似的事情:

var router = require("express").Router();

router.all("/route", function(req, res){
    res.redirect("/repetitive");
});

router.all("/route2", function(req, res){
    res.redirect("/repetitive");
});

这是一个人为的例子,但我正在寻找一种方法让很多路线重定向到/repetitive而不会写很多router.all,但我没有看到在文档中的方式。正在将正则表达式传递给router.all一个选项,如果是,那么表达的最佳做法是什么?谢谢!

1 个答案:

答案 0 :(得分:0)

以下情况如何?

var r = function(req, res) {
    res.redirect("/repetitive");
}

var routes = ["/route", "/route2"];
for (var i in routes)
    router.all(routes[i], r);

或者如果名称遵循正则表达式模式:

router.all(/\/route\d*/, function(req, res) {
    res.redirect("/repetitive");
});

上述内容将匹配“/ route”,可选地后跟一个数字。