如何在Expressjs路由器中重定向到前缀路径

时间:2017-02-24 15:02:32

标签: express

我正在/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下。

有可能吗?怎么做?

1 个答案:

答案 0 :(得分:3)

如果您想将用户重定向到装载路径(在这种情况下为/path)而不对其进行硬编码,则可以使用req.baseUrl

res.redirect(req.baseUrl + '/');

+ '/'对于嵌套路由器是可选的,但它对于应用级路由器来说是必需的,因为它有一个空的req.baseUrl。或者(如果您不想添加尾部斜杠),您可以使用它(如果您还希望它在应用程序级路由器中工作):

res.redirect(req.baseUrl || '/');