如果使用NodeJS的http服务器功能,请求的类型为http.IncomingMessage
,实现stream.Readable
。
Readable
发出的数据事件可以包含String
或Buffer
类型的参数。
对于IncomingMessage
,我似乎正在接收数据事件的字符串参数。考虑到HTTP身体数据更好地由Buffer
表示,我不清楚为什么。但是,文档没有说明论证的类型。
当读者可能会发出String
个参数时,参数的类型总是Buffer
,还是有条件(包括我可以从程序端控制的那些条件)?
答案 0 :(得分:1)
(http.IncomingMessage
)流没有默认编码,因此您将获得Buffer
个对象而不是字符串。如果你打电话给.setEncoding()
,那么将获取你指定的任何类型的字符串。
如果您使用字符串缓冲数据,那么您当然会看到附加“字符串数据”,因为当您连接{{1}时隐式调用buffer.toString()
你的字符串缓冲区变量。例如:
Buffer