express
, по-видимому, экспортирует промежуточное программное обеспечение под названием query
, которое используется для анализа строк запроса. Поскольку это промежуточное ПО обычно вызывается в начале потока запросов, добавление строки запроса к req.url
происходит «слишком поздно».
Вот обходной путь, который, кажется, работает:
const addQuery = (req, res, next) => {
req.url = req.url + `?id=someID&product=bag`;
req.query = null; // if this isn't added, the `query` middleware
// will assume the query string is already parsed
next();
}
app.get('/', addQuery, express.query(), (req, res) => {
...
});
РЕДАКТИРОВАТЬ : как справедливо предполагает @wlh, addQuery
может также напрямую изменять req.query
:
const addQuery = (req, res, next) => {
req.query.id = 'someID';
req.query.product = 'bag';
next();
}
Это должно работать примерно так же, но намного чище.