修改expressjs中间件中的req.path

时间:2016-03-07 13:25:58

标签: node.js express routing

我正在尝试制作一个中间件来从路径中删除区域设置字符串(例如/de/about - > /about),而我正在使用express。我尝试了以下中间件:

app.use(function (req, res, next) {
    var localeMatch = /^\/([a-z]{2}(?:\-[A-Z]{2})?)(\/.+)$/.exec(req.path);

    if (localeMatch) {
        req.locale = localeMatch[1];
        req.path = localeMatch[2];
    } else {
        req.locale = 'en-GB';
    }

    next();
});

它不起作用,因为req.path是只读的。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

看一下Express' mount paths。您可以在每个"子应用程序"上使用处理功能,但是您的所有区域设置都会转到相同的路径。