我在nodejs中编写了一个Web服务器。大多数时候,我从一个服务接收消息,做某事,并向另一个服务发送消息。我正在进行所有沟通。
有时,沟通失败。我正在尝试调试正在进行的事情。我想检查一下请求。
我有一个用快递写的节点服务。我有路由,路由传递req对象和resp对象。我应该能够打印出req对象。问题解决了!
但是JSON.stringify会抛出错误。 util.inspect不会抛出错误,但许多属性值都标记为[circular]。未显示实际属性值。
当我在console.log(req.body)时打印未定义。当我使用util.inspect查看req.body时,它会打印body:{}
我觉得框架隐藏了我的东西。我不知道如何在没有被美化的情况下获取信息。
在tcp / ip级别,它太详细了。在应用程序级别,它不够详细。但在http级别,它应该是正确的。收到的请求只是文本。我应该能够打印出来。
我尝试使用Charles,但我在配置时遇到了问题。
当然,在框架按摩它之前,其他人一直希望看到请求。他们是如何做到的呢?
答案 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属性。人们把它拿出来了。要完成同样的事情需要一些代码。