2017-02-24 137 views
0

我在/path下的特定路径中部署应用程序。如何重定向到Expressjs路由器中的前缀路径

// 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

你希望用户在结束了'/'或在重定向后的'/ path'中? – robertklep

+0

我想重定向到'/ path'。但是由于我已经指定了,我不想在所有重定向中使用完整路径。 –

回答

1

如果你想将用户重定向到安装路径(在这种情况下,/path)没有硬编码它,你可以使用req.baseUrl

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

+ '/'是可选的嵌套的路由器,但它是必要的应用程序级别的路由器,因为它有一个空的req.baseUrl。或者(如果你不希望添加一个尾随斜线),你可以使用这个(如果你也希望它在应用级路由器工作):

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

这是性感和有用的! –