Типичное промежуточное программное обеспечение в экспресс используется до того, как запрос попадает на маршруты, например, сначала выполняется аутентификация, затем выполняется код конкретного маршрута, затем отправляется ответ.Можно ли использовать какое-то «промежуточное ПО» после отправки ответа с помощью экспресс?
Мне интересно, возможно ли иметь вещь как промежуточное ПО после маршрут попал.
Скажите, что у меня есть пять маршрутов, на которые все отвечают с помощью json, и я хотел зарегистрировать отправленный json каждый раз, когда один из маршрутов попадает.
Я мог бы пойти и войти вручную каждый раз, когда я отправить ответ в маршрут, как это:
console.log(data);
res.json(data);
, но это кажется излишним для меня. Лучший подход мог бы обернуть, что в функции для вызова в маршруте, но это потребовало бы, чтобы передать объект ответ каждый раз, как это:
/* instead of the above */
send(data, res);
/* and then somewhere else usable for all routes */
function send(data, res) {
console.log(data);
res.json(data);
}
это также, кажется, немного как плохая практика для меня, так что я «Интересно, будет ли это предпочтительным способом или если есть способ использовать какое-то« промежуточное ПО », которое позволит отправить ответ обычным способом и после этого подключиться.
спасибо! это уже много помогло мне. Поскольку я дополнительно искал способ зацепить сам ответ (сделайте что-нибудь ** перед отправкой **), я думаю о переписывании экспресс-метода рендеринга, вносить свои вещи в него, а затем называть исходный рендер последним - вы бы считали эту хорошую практику? – mvuajua
у вас есть очень меньше вариантов в узле, если вы хотите (что-то сделать до его отправки), тогда его можно перезаписать метод рендеринга, но обратите внимание: вы не всегда будете заканчивать ответ с помощью 'res.render', это может быть 'res.end' или' res.send' или 'pipe'. –
да, подумал об этом тоже, но поскольку у меня есть случай, когда промежуточное ПО, изменяющее res.render, было бы необходимо только с маршрутами, которые действительно отображают страницу, это не должно быть такой проблемой. – mvuajua