Я использую Winston и Morgan для всех входных протоколов в Sails.js, и мне нужно иметь возможность регистрировать ответы от запросов HTTP-получения. Мне нужно записать их в файл. В настоящий момент мой logFile отображает все HTTP-запросы, но он не отображает ответы. Я искал все варианты для Morgan и Winston и не могу найти способ/вариант для этого. Мне просто интересно, есть ли у кого-нибудь из вас какие-либо советы о том, как это сделать? Спасибо!Как регистрировать ответы JSON HTTP с помощью Winston/Morgan
1
A
ответ
4
Вы можете написать функцию промежуточного программного обеспечения для ExpressJS, которая будет регистрировать тело после отправки ответа. Извлекая его от Node http module, чтобы увидеть, как Connect (и, следовательно, Express) управляет телом ответа (который является потоком): вы можете подключиться к двум методам, которые записывают этот поток, чтобы захватить куски, а затем выполнить их/Это. Простое решение и можно сделать более надежным, но оно показывает, что концепция работает.
function bodyLog(req, res, next) {
var write = res.write;
var end = res.end;
var chunks = [];
res.write = function newWrite(chunk) {
chunks.push(chunk);
write.apply(res, arguments);
};
res.end = function newEnd(chunk) {
if (chunk) { chunks.push(chunk); }
end.apply(res, arguments);
};
res.once('finish', function logIt() {
var body = Buffer.concat(chunks).toString('utf8');
// LOG BODY
});
next();
}
А затем установить его перед любыми маршруты назначаются в основном приложении маршрутизатора:
app.use(bodyLog);
// assign routes
Я предполагаю, что вы могли бы также использовать это как задание для переменной в Морган, но у меня нет посмотрел, как будет выполняться присвоение переменной async.
Смежные вопросы
- 1. Как регистрировать ответы JSON в Dropwizard (Jersey)
- 2. Akka-http как регистрировать ответы об ошибках сервера?
- 3. Как регистрировать HTTP-запросы/ответы в Netty 4.0.0.Beta1?
- 4. Как применять HTTP-ответы как сообщения JSON?
- 5. Использование Restler3, как регистрировать запросы/ответы
- 6. Ruby Net :: HTTP :: Get и ответы JSON
- 7. Поддельные ответы http с огурцом
- 8. Что заставляет отправлять большие ответы json HTTP?
- 9. Комбинировать ответы службы JSON с помощью Camel
- 10. Потоковые ответы Http с NodeJS
- 11. Как проверить ответы HTTP-запроса?
- 12. Декодирование ответы множественным JSON с помощью PHP
- 13. Как отредактировать частичные ответы с помощью Akka HTTP
- 14. Как перехватывать и изменять HTTP-ответы с помощью Java?
- 15. Heroku усекает HTTP-ответы?
- 16. Как регистрировать запросы клиента Akka HTTP
- 17. Я хочу, чтобы dropwizard возвращал ответы HTTP 500 как JSON
- 18. Как сжать ответы Camel HTTP?
- 19. HTTP-ответы в API Rails
- 20. XPCOM: sniff HTTP-ответы
- 21. Как я могу вернуть ответы JSON с помощью Healthwatch Dropwizard?
- 22. Как проверить ответы с помощью Gauge (getgauge.io)?
- 23. Кураж $ ответы исх HTTP
- 24. Как регистрировать HTTP-запрос/ответную информацию после отправки ответа HTTP?
- 25. Работа с twitter Ответы JSON
- 26. Можно ли получать ответы не по порядку с помощью HTTP?
- 27. Как регистрировать все запросы и ответы клиентов веб-сервисов
- 28. iPhone HTTP REST Запросы/Ответы
- 29. node.js потоковое gzip http ответы
- 30. QuickBlox - Как получить ответы json