首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何制作节点。js TCP服务器写入数据库

如何制作节点。js TCP服务器写入数据库
EN

Stack Overflow用户
提问于 2019-05-27 04:40:16
回答 1查看 0关注 0票数 0

我有通过TCP发送实时数据的软件客户端。而nodejs是TCP服务器监听它并写入mysql DB。当尝试实现代码我得到运行时错误需要帮助。

==============================代码=================== ================

代码语言:javascript
复制
net.createServer(function (sock){ // We have a connection - a socket object is assigned to the connection automatically 
    console.log('CONNECTED: ' + sock.remoteAddress + ':' + sock.remotePort); // Identify this client 
    sock.name = sock.remoteAddress + ":" + sock.remotePort ; 
    var chunk = ""; 
    sock.on('data', function (data) { 
     console.log('DATA ' + sock.remoteAddress + ': ' + data); // Write the data back to the socket, the client will receive it as data from the server 
     chunk += data.toString(); // Add string on the end of the variable 'chunk' // save log to database 
     pool.getConnection(function (err, conn) {
        if (err) throw err; conn.query('INSERT INTO DB (Table) VALUES(?)', [chunk] , 
        function (err, result) { 
               if (err) throw err; 
               console.log(error.code); 
               console.log("Inserted"); 
          }); 
    });

===========运行时错误==============

代码语言:javascript
复制
/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/protocol/Parser.js:437
throw err; // Rethrow non-MySQL errors
Error: ER_DATA_TOO_LONG: Data too long for column 'Table' at row 1
at Query.Sequence._packetToError (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/protocol/sequences/Sequence.js:47:14)
at Query.ErrorPacket (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/protocol/sequences/Query.js:77:18)
at Protocol._parsePacket (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/protocol/Protocol.js:291:23)
at Parser._parsePacket (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/protocol/Parser.js:433:10)
at Parser.write (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/protocol/Parser.js:43:10)
at Protocol.write (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/protocol/Protocol.js:38:16)
at Socket. (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/Connection.js:91:28)
at Socket. (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/Connection.js:525:10)
at Socket.emit (events.js:189:13)
at addChunk (_stream_readable.js:284:12)
--------------------
at Protocol._enqueue (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/protocol/Protocol.js:144:48)
at PoolConnection.query (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/Connection.js:201:25)
at /home/jothi/WorkSpaces/javaScript/Node/TCP/server/tcpmysql.js:36:11
at Handshake.onConnect (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/Pool.js:64:7)
at Handshake. (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/Connection.js:525:10)
at Handshake._callback (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/Connection.js:491:16)
at Handshake.Sequence.end (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/protocol/sequences/Sequence.js:83:24)
at Handshake.Sequence.OkPacket (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/protocol/sequences/Sequence.js:92:8)
at Protocol._parsePacket (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/protocol/Protocol.js:291:23)
at Parser._parsePacket (/home/jothi/WorkSpaces/javaScript/Node/TCP/server/mysql/lib/protocol/Parser.js:433:10)

请帮我

EN

Stack Overflow用户

发布于 2019-05-27 14:24:18

代码语言:txt
复制
chunk += data.toString();

块包含来自您收到的每个数据包的数据,因为它从未被重置。考虑使用=而不是+=

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档