在expressjs中间件中修改req.path

我试图做一个中间件从path中删除语言环境string(例如/de/about – > /about ),并使用express。 我试过以下中间件:

 app.use(function (req, res, next) { var localeMatch = /^\/([az]{2}(?:\-[AZ]{2})?)(\/.+)$/.exec(req.path); if (localeMatch) { req.locale = localeMatch[1]; req.path = localeMatch[2]; } else { req.locale = 'en-GB'; } next(); }); 

它不工作,因为req.path是只读的。 我怎样才能做到这一点?

看看Express的安装path 。 您可以在每个“子应用程序”上有一个处理函数,但是所有的语言环境都转到相同的路线。