我怎样才能看到一个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属性。 人们把它拿出来。 要完成同样的事情需要一点点的代码。
- configurationExpress和Angular
- 循环访问具有子数组的embedded式文档,并将其显示在EJS文档上
- 所有路由的HTTPSredirectnode.js / express – 安全问题
- 节点MySQL – 在发送之前编辑响应
- 无法testing第三方授权:Node / Express / Supertest / Facebook
- 线路以奇怪的顺序运行
- 正确的方法来设置响应状态和JSON内容的REST API使用nodejs和express
- 用我的本地数据库连接我的应用程序(node,express,mongo)并查询它
- openshift nodeJS应用程序 – git最新/服务器运行没有错误,但我仍然看到欢迎页面