2017-06-12 99 views
0

運行一個快速應用程序,例如具有類似/home等路線。現在我想改變url/en/home/sp/homeExpressJS:修改中間件中的路由

我的要求是,以這些路線從/en/home/home,同樣/sp/home/home地圖和請求對象上的/en/sp

我基礎上添加頁眉要編寫一箇中間件,它將根據上述路由修改路由並從中提取信息。

我可以使用正則表達式來完成第二部分,但無法找到一種即時修改路由的方法。

+0

將這項工作或你有更多的要求嗎? 'router.get('/:lang/home')' –

+0

[刪除NodeJS Express中的路由映射]的可能重複(https://stackoverflow.com/questions/10378690/remove-route-mappings-in-nodejs-express ) –

+0

@Arpit,我不想改變現有的路線,因爲有數百個。我只是想提取相關信息,然後修改現有路線之一的路線。只是想盡量減少代碼更改。 –

回答

-1

你可以試試下面的中間件:

app.use('/en/home', function(req, res, next) { 
    req.headers.lang = 'en';  
    res.redirect('/home'); 
}); 

app.use('/sp/home', function(req, res, next) { 
    req.headers.lang = 'sp';  
    res.redirect('/home'); 
}); 
+0

它已經被討論過了。 –

+0

@ArpitSolanki更新了在每個中間件的標題中存儲信息的答案,然後將其重定向到主頁 –

+0

不是一個可擴展的解決方案。試想一下,你有數百條路由,並且丟失了諸如/ en/...,/ sp/...,/ hi/...,/ ta/...等前綴 –