【问题标题】:ExpressJS : Modify route in a middlewareExpressJS:在中间件中修改路由
【发布时间】:2017-06-12 07:37:48
【问题描述】:

运行一个快速应用程序,例如具有/home 等路线。现在我想将url 更改为/en/home、/sp/home 等。

我的要求是将这些路由从/en/home 映射到/home,同样将/sp/home 映射到/home,并根据/en 和/sp 在请求对象上添加一个标头

我想写一个中间件,它会修改路由并根据上面提到的路由从中提取信息。

我可以使用正则表达式来完成第二部分,但找不到动态修改路线的方法。

【问题讨论】:

标签: node.js express routes


【解决方案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');
});

【讨论】:

  • @ArpitSolanki 更新了答案,将信息存储在每个中间件的标头中,然后将其重定向到主页
  • 不是可扩展的解决方案。试想一下,您有数百条路线并且丢失了 /en/...、/sp/...、/hi/...、/ta/... 等前缀
猜你喜欢
  • 2023-01-21
  • 2016-06-21
  • 1970-01-01
  • 2016-02-27
  • 2021-09-06
  • 2016-05-31
  • 2017-12-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多