У меня есть функция промежуточного программного обеспечения, которая принимает значение строки запроса и превращает его в
Я использую 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
, но мне интересно, есть ли лучший способ сделать это, использующий существующие функции парсинга URL-адресов в Express.