我有一个中间件函数,该函数接受查询字符串值并将其转换为
我正在使用Express 4和Node.js。我有一个为/:module/:page.aspx
定义的路由,并且正在许多中间件函数中使用req.params
和req.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.params
和req.query
反映这个新的URL。我可以自己解析新的URL,然后将这些值重新分配给req.params
和req.query
,但是我想知道是否有更好的方法可以利用Express的现有URL解析功能。