2017-02-24 134 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

這是性感和有用的! –