運行一個快速應用程序,例如具有類似/home
等路線。現在我想改變url
到/en/home
,/sp/home
等ExpressJS:修改中間件中的路由
我的要求是,以這些路線從/en/home
到/home
,同樣/sp/home
到/home
地圖和請求對象上的/en
和/sp
我基礎上添加頁眉要編寫一箇中間件,它將根據上述路由修改路由並從中提取信息。
我可以使用正則表達式來完成第二部分,但無法找到一種即時修改路由的方法。
運行一個快速應用程序,例如具有類似/home
等路線。現在我想改變url
到/en/home
,/sp/home
等ExpressJS:修改中間件中的路由
我的要求是,以這些路線從/en/home
到/home
,同樣/sp/home
到/home
地圖和請求對象上的/en
和/sp
我基礎上添加頁眉要編寫一箇中間件,它將根據上述路由修改路由並從中提取信息。
我可以使用正則表達式來完成第二部分,但無法找到一種即時修改路由的方法。
你可以試試下面的中間件:
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');
});
它已經被討論過了。 –
@ArpitSolanki更新了在每個中間件的標題中存儲信息的答案,然後將其重定向到主頁 –
不是一個可擴展的解決方案。試想一下,你有數百條路由,並且丟失了諸如/ en/...,/ sp/...,/ hi/...,/ ta/...等前綴 –
將這項工作或你有更多的要求嗎? 'router.get('/:lang/home')' –
[刪除NodeJS Express中的路由映射]的可能重複(https://stackoverflow.com/questions/10378690/remove-route-mappings-in-nodejs-express ) –
@Arpit,我不想改變現有的路線,因爲有數百個。我只是想提取相關信息,然後修改現有路線之一的路線。只是想盡量減少代碼更改。 –