chunk数据logging在node.js中
我有一个http.request()内的node.js中的以下function:
res.on('data', function (chunk) { var sr="response: "+chunk; console.log(chunk); });
我在控制台中得到这个
<Buffer 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 20 3f 3e 3c 72 65 73 75 6c 74 3e 3c 73 75 63 ...>
但是当我使用这个:
res.on('data', function (chunk) { var sr="response: "+chunk; console.log(sr); });
我得到一个正确的XML响应像这样:
responose: .....xml responose.....
我不明白为什么我需要附加一个string输出正确的响应。 第一个代码中产生的响应是什么意思?
chunk
是一个Buffer ,它是Node存储二进制数据的方式。
因为它是二进制数据,所以在你正确显示它之前,你需要把它转换成一个string(否则, console.log
会显示它的对象表示)。 一种方法是把它附加到另一个string(你的第二个例子是这样做的),另一种方法是在它上面调用toString()
:
console.log(chunk.toString());
但是,我认为当chunk
包含不完整的字符时,这可能会失败(一个UTF-8字符可以由多个字节组成,但是不能保证chunk
在这个字节中间没有被切断串)。
- NodeJS – 获取Mongodb的属性在连接时不工作
- 重复密钥错误索引Mongoose
- 如何在WebStorm 10中通过Gulpfiledebugging由nodemon启动的快速应用程序?
- 使用Angular routeProvider和Express路线
- Socket.io无法访问与Express相同的会话
- pipe理员能够将社交媒体链接到用户的帐户
- 如何在.ejs文件中获取Expreejs的req和res对象
- 我使用auth0进行用户身份validation,并且我有一个针对CRUDpost(title,img,desc)的API。 如何进行CRUD API的authentication调用?
- 如何将html呈现到页面中,而不是将整个视图呈现为Node.js + express应用程序?