如何使用node / express将每个无效请求路由到默认路径

时间:2013-09-03 12:41:56

标签: javascript regex node.js express

我正在尝试构建一个用户可以输入这些有效路径的服务器:

/art/thisProject
/art/thatProject

如果用户输入其他任何无效的内容,例如这些用户将被重定向到root,然后重定向到默认路径/art/myProject

/some/url
/something
/another/u/rl

我想这个错误是因为误用"*"或错误理解如何覆盖路由器规则。

我该怎么做?

这是我的代码:

app.get('/', function(req, res) {
    res.redirect('/art/myProject')
});

app.get('/art/:project', function(req, res){
    var project = req.param('project');
    var filePath = 'art/' + project + '/' + project;
    res.render(filePath)
});

app.get('*', function(req, res) {
    res.redirect('/')
});

1 个答案:

答案 0 :(得分:6)

这应该有效:

app.get('/*', function(req, res) {
    res.redirect('/')
});

或者这个:

app.use(function(req, res) {
    res.redirect('/')
});

两者当然必须放在最后。