我怎样才能看到一个node.js程序中的整个请求和响应对象?

我在nodejs中写了一个web服务器。 大多数时候,我正在接收来自一个服务的消息,做一些事情,并向另一个服务发送消息。 我正处在所有的沟通中。

有时候,沟通失败了。 我正在尝试debugging正在发生的事情。 我想审查一下这个请求。

我有一个节点服务,写在快递。 我有路线,路线传递一个req对象和一个resp对象。 我应该能够打印出req对象。 问题解决了!

但JSON.stringify引发错误。 util.inspect不会抛出错误,但许多属性值被标记为[circular]。 没有显示实际的属性值。

当我console.log(req.body)它打印未定义。 当我使用util.inspect查看req.body时,它会打印body:{}

我有这样的感觉,框架隐藏了我的东西。 我不知道如何得到这些信息,而不是被美化。

在tcp / ip级别,它太详细了。 在应用程序层面,它不够详细。 但在http层面,应该是正确的。 收到的请求只是文本。 我应该可以打印出来。

我尝试使用查尔斯,但我无法configuration它。

当然,在框架按摩之前,其他人也希望看到这个请求。 他们是如何做到的呢?

你可以使用morgan模块 ,它是node.js的HTTP请求logging器中间件

我提出了一个更具体的问题,使用较低级别的中间件节点堆栈。 我在那里得到了答案:
我通过的信息去了哪里?
以下是关于如何devise节点的讨论:
Node.js – 使用Express获取原始请求主体
基本上,在节点中曾经有一个请求对象的rawBody属性。 人们把它拿出来。 要完成同样的事情需要一点点的代码。