如何从中间件函数内部重新解析req.url?

时间:2019-04-10 23:08:52

标签: javascript node.js express

我有一个中间件函数,该函数接受查询字符串值并将其转换为

我正在使用Express 4和Node.js。我有一个为/:module/:page.aspx定义的路由,并且正在许多中间件函数中使用req.paramsreq.query值。

app.get('/:module/:page.aspx', catchEncodedQuery, doSomeStuff, doOtherStuff);

我首先出现一个中间件功能,该功能捕获某些具有查询字符串值的请求,这些查询字符串值可以转换为新的req.url,我将其设置为在中间件链中进一步使用。基本上,我想继续将查询字符串值的未编码形式始终作为请求URL。

function catchEncodedQuery(req, res, next) {
    if (
        // req meets some specific criteria
    ) {
        req.url = myUnencodeFunction(req.query.url_str);
        next();
    } else {
        next();
    }
};

但是我也希望req.paramsreq.query反映这个新的URL。我可以自己解析新的URL,然后将这些值重新分配给req.paramsreq.query,但是我想知道是否有更好的方法可以利用Express的现有URL解析功能。

0 个答案:

没有答案