我正在/path
下的特定路径中部署应用。
// login form
router.get('/login', function (req, res) {
})
router.post('/login', function(req, res) {
if (success) {
res.redirect('/') // <<--- does not direct to /path
}
})
// install router under path
app.use('/path', router)
所以我可以导航到http://.../path/login
登录后,我想将用户重定向到/
下的/path
。
我不想硬编码/path
并且只使用相对路径,因为路由器已经安装在path
下。
有可能吗?怎么做?
答案 0 :(得分:3)
如果您想将用户重定向到装载路径(在这种情况下为/path
)而不对其进行硬编码,则可以使用req.baseUrl
:
res.redirect(req.baseUrl + '/');
+ '/'
对于嵌套路由器是可选的,但它对于应用级路由器来说是必需的,因为它有一个空的req.baseUrl
。或者(如果您不想添加尾部斜杠),您可以使用它(如果您还希望它在应用程序级路由器中工作):
res.redirect(req.baseUrl || '/');