我正在将应用程序部署在特定路径中,例如/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)
Run Code Online (Sandbox Code Playgroud)
所以我可以导航到http://.../path/login
登录后,我想将用户重定向到下面/的/path.
我不想硬编码/path,只使用相对路径,因为路由器已经安装在path.
是否可以?怎么做?
如果您想将用户重定向到安装路径(在本例中/path为 )而不对其进行硬编码,您可以使用req.baseUrl:
res.redirect(req.baseUrl + '/');
Run Code Online (Sandbox Code Playgroud)
对于嵌套路由器来说是+ '/'可选的,但对于应用程序级路由器来说是必需的,因为它有一个空的req.baseUrl. 或者(如果您不想添加尾部斜杠),您可以使用它(如果您也希望它在应用程序级路由器中工作):
res.redirect(req.baseUrl || '/');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1617 次 |
| 最近记录: |