我需要匹配2条路线。
此路线/*
的含义是什么? 。意味着路线如http://localhost:3000/#/
?
路线检查。
如果路由是/ login或/ register等,则首先点击它,否则/ *
1 - 路由,例如/ login或/ register
app.get('What Here', function(req, res){
res.redirect(req.url);
})
2 - 路线如/
app.get('/*', function(req, res){
res.redirect('/');
})
答案 0 :(得分:2)
要走的路是:
app.get('/login', function (req, res) {
//login user
});
对于注册,类似的东西
app.get('/register', function (req, res) {
//register user
});
最后,对于其他所有内容,您只需执行以下操作:
app.get(/^\/(.*)/, function (req, res) {
//everything else
});
显然,您必须将前两个路径定义放在最后一个路径定义之前。
您甚至可以通过req.params [0]访问网址的最后一部分。例如,如果网址为http://localhost:3000/#/
,则req.params [0]将包含“#/”
有关详细信息,请查看Organize routes in Node.js
编辑:根据您的评论,假设您希望在每条路线上处理“多页”,您可以执行以下操作:
app.get('/login/:id', function (req, res) {
//login user with id = id
//The value of id = req.params.id
});
除此之外,要处理以'/ login /'开头的任何路由,请尝试此正则表达式:
app.get(/^\/login\/(.*)/, function (req, res) {
//handles route like '/login/wefnwe334'
});