繁体   English   中英

如何在Node.js中监视传出的HTTP请求?

[英]How to monitor outgoing HTTP requests in Node.js?

我正在为用node编写的应用程序构建一个小型开发人员工具(HUD)。 在该工具中,我想显示为服务该页面而进行的所有HTTP / HTTPS请求(向开发人员显示它们并记录其编号)。 有没有一种干净的方法可以执行此操作,而无需包装诸如http.request()类的东西? 如果不是,那么为了同时登录HTTP和HTTPS,需要包装的最低层方法是什么? TCP连接如何?

答案取决于代码的复杂程度。 如果您对每个请求发出3或4个外部资源请求,那么只需手动插入配置文件代码,这可能是最干净,最简单的解决方案。

如果您触发许多请求,可以很容易地完成猴子补丁(包装) http.requesthttps.request

patcher = (patchMe) ->
  original = patchMe.request
  patchMe.request = (options, callback) ->
    console.log options.host, options.method # or any other counting, profiling
    original(options, callback)

http = require 'http'
https = require 'https'

patcher(http)
patcher(https)

如果您想修补的请求数量超出了这些请求,那么在tcp / udp级别上,您将不得不阅读源代码以找出可以修补的基础方法,但我还没有去过。

我很喜欢阅读nodetime的源代码,该源代码修补了require函数,以更深入地分析代码中特定功能/模块的使用情况。 去读那个源! :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM