处理Node.js套接字数据

我有服务器从客户端接收数据[GPS设备]。 我有一个可读的格式呈现数据(即从客户端获得的结果)的问题。 以下是我尝试过的东西。

这样做:

console.log(data) 

我明白了

 <Buffer d0 d7 3d 00 c4 56 7e 81> 

也试过

  console.log(data.toString()) 

但是我得到不想要的结果:见下面:

   A V~  

这是我的完整代码:

 var net = require('net'); var fs = require('fs'); var server = net.createServer(function (socket) { console.log('Server started: Waiting for client connection ...'); console.log('Client connected:port,address: '+socket.remotePort, socket.remoteAddress); socket.on('data', function (data) { var date = new Date(); var today = date.getDate()+'_'+date.getMonth(); fs.appendFile(today+'_log.txt', data, function (err) { if (err) throw err; console.log(data.toString()) }); }); }); server.listen(my_port, my_ip); 

感谢您的input。

根据文档,您必须指定一个编码来获得一个string,而不是一个缓冲区:

 Event: 'data'# Buffer object Emitted when data is received. The argument data will be a Buffer or String. Encoding of data is set by socket.setEncoding(). 

您可以configuration套接字以UTF-8格式获取数据,例如:

 socket.setEncoding('utf8'); 

假设缓冲区中的数据是7位ASCII码,

 console.log(data.toString('ascii')) 

将解决问题。