Подтвердить что ты не робот

Как отслеживать сеть на node.js, аналогично инструментам разработчика chrome/firefox?

При разработке приложений javascript на стороне клиента сетевая панель разработчика неоценима для отладки сетевых проблем:

enter image description here

Как разработчик, создающий приложение NodeJS, отслеживает сетевой трафик от приложения nodejs на сервере http/https? Например, как отладить следующий сетевой трафик?

var http = require('http');
var req = http.request ...
req.write ...
req.send()

Мой код совершает звонок на сторонний https-сервер, поэтому я не могу использовать инструменты wirehark или подобные инструменты для обнуления пакетов.

Для получения дополнительной информации проблема, которую я пытаюсь исследовать, здесь.

EDIT:

Вот похожие вопросы, которые задают вопрос о том, как сделать то же самое на других языках:

4b9b3361

Ответ 1

Я знаю, что это не очень, но вы всегда можете выводить содержимое заголовков ответов на консоли внутри вашего запроса:

var req = https.request(options, function(res) {
    console.log("statusCode: ", res.statusCode);
    console.log("headers: ", res.headers);

    res.on('data', function(d) {
        process.stdout.write(d);
    });
});

Однако ваш первоначальный вопрос не касался проблем с серверной частью, а проблема с самим кодом node, поэтому здесь это было бы не очень полезно.

Ответ 2

Используйте внешний инструмент отладки HTTP. Ваши варианты включают в себя:

Вы запускаете один из них, сообщаете им, куда направлять трафик, и указываете свое приложение на этом отладочном прокси вместо реального сервера.

Ответ 3

Я пришел к этому вопросу в поисках чего-то подобного, но я использую пакет request. В этом случае все, что вам нужно сделать, это включить эту строку в свой код:

require('request-debug')(request);

(убедитесь, что пакет запроса-отладки установлен)

Это приведет к печати всех данных запроса на консоли.

Ответ 4

Если вы используете версию node раньше, чем node 8, я большой поклонник node -spector:

https://github.com/node-inspector/node-inspector

Я считаю, что у него есть все, что вы ищете: введите описание изображения здесь

Ответ 5

Если вам нужно только увидеть URL-адреса исходящего трафика и причины его возникновения, вы можете использовать debugging-aid

npm i -D debugging-aid
node --require debugging-aid/network app.js 

Результирующий вывод консоли может выглядеть следующим образом:

[aid] network, outgoing  to: http://example.com/
 stack:     at Agent.createSocket (_http_agent.js:234:26)
    at Agent.addRequest (_http_agent.js:193:10)
    at new ClientRequest (_http_client.js:277:16)
    at Object.request (http.js:44:10)
    at Request.start (myapp-path/node_modules/request/request.js:751:32)
    at Request.end (myapp-path/node_modules/request/request.js:1511:10)
[aid] network, outgoing  to: http://example.com/
 stack:     at Agent.createSocket (_http_agent.js:234:26)
    at Agent.addRequest (_http_agent.js:193:10)
    at new ClientRequest (_http_client.js:277:16)
    at Object.request (http.js:44:10)
    at get (myapp-path/node_modules/got/source/request-as-event-emitter.js:234:22)
    at Immediate.<anonymous> (myapp-path/node_modules/got/source/request-as-event-emitter.js:305:10)

Отказ от ответственности:

Я автор помощи отладки
Этот ответ был написан, когда помощь отладки была на версии 0.2.1