如何在node.js程序中查看整个请求和响应对象?

时间:2016-09-29 02:12:00

标签: node.js http express

我在nodejs中编写了一个Web服务器。大多数时候,我从一个服务接收消息,做某事,并向另一个服务发送消息。我正在进行所有沟通。

有时,沟通失败。我正在尝试调试正在进行的事情。我想检查一下请求。

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

但是JSON.stringify会抛出错误。 util.inspect不会抛出错误,但许多属性值都标记为[circular]。未显示实际属性值。

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

我觉得框架隐藏了我的东西。我不知道如何在没有被美化的情况下获取信息。

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

我尝试使用Charles,但我在配置时遇到了问题。

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

2 个答案:

答案 0 :(得分:1)

你可以使用morgan module,它是node.js的HTTP请求记录器中间件

答案 1 :(得分:0)

我使用较低级别的中间件节点堆栈提出了一个更具体的问题。我在那里得到了答案:
Where did the information I passed in go?
以下是关于如何以这种方式设计节点的讨论:
Node.js - get raw request body using Express
基本上,以前在节点中存在请求对象的rawBody属性。人们把它拿出来了。要完成同样的事情需要一些代码。