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

How to route every invalid request to a default path using node/express

本文关键字:请求 无效 路由 路径 默认 node 何使用 express      更新时间:2023-09-26

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

/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('/')
});

这应该有效:

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

或者这个:

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

当然,两者都必须放在最后。