Node.js NodeJs解码为可读文本

Node.js NodeJs解码为可读文本,node.js,Node.js,问题 我想通过NodeJs使用IP地址从设备接收数据。但我收到了以下数据: 我尝试过的 这是我能够得到的代码,它仍然产生我上面描述的问题 var app = require('http').createServer(handler); var url = require('url') ; var statusCode = 200; app.listen(6565); function handler (req, res) { var data = ''; req.on('data',

问题

我想通过NodeJs使用IP地址从设备接收数据。但我收到了以下数据:

我尝试过的

这是我能够得到的代码,它仍然产生我上面描述的问题

var app = require('http').createServer(handler);
var url = require('url') ;
var statusCode = 200;

app.listen(6565);

function handler (req, res) {
 var data = '';

req.on('data', function(chunk) {
  data += chunk;
});

req.on('end', function() {
console.log(data.toString());
fs = require('fs');
fs.appendFile('helloworld.txt', data.toString(), function (err) {
  if (err) return console.log(err);
});
});

res.writeHead(statusCode, {'Content-Type': 'text/plain'});
res.end();
}
下面是我收到的console.log(req.headers)的结果


所以我的问题是,我如何解码数据?有人知道它们是什么类型的数据吗?

使用
缓冲区来处理八位字节流

function handler (req, res) {

    let body=[];

    req.on('data', function(chunk) {
        body.push(chunk);
    });


     req.on('end', function() {
        body = Buffer.concat(body).toString('utf8');
    ...

你的程序运行得很好。正在发送的数据需要整理。你能帮我们举个例子吗?你是说从设备发送的例子数据吗?制造商没有给它。感谢您的及时回复。
console.log(res.headers)
handler()
中显示了什么?是的,我的意思是,@AmalinaAziz。你知道你收到的是什么样的请求对象吗?请写请求对象。我没有定义@请修改此内容并让我知道:/
chunk
已经是一个缓冲区。另外,
Buffer.concat
需要一个缓冲区实例数组,而不是单个实例,应该在
end
处理程序中调用。@robertklep非常感谢!最后:因为响应是
应用程序/octet流
,很可能是二进制格式,所以对其调用
toString()
可能会损坏它(但是,OP似乎不知道数据的格式,所以可能是任何格式)。@AmalinaAziz你为什么建议编辑?前一个对你有用吗?