Javascript 使用nodejs tcp服务器接收客户端数据

Javascript 使用nodejs tcp服务器接收客户端数据,javascript,node.js,Javascript,Node.js,我想从正在向我的服务器发送数据的客户端接收数据。这是我将传入数据插入msql的代码 var net = require('net'); var mysql = require('mysql'); var randomstring = require("randomstring"); var server = net.createServer(function(socket) { socket.write('Echo server\r\n'); socket.pipe(socke

我想从正在向我的服务器发送数据的客户端接收数据。这是我将传入数据插入msql的代码

var net = require('net');
var mysql = require('mysql');
var randomstring = require("randomstring");

var server = net.createServer(function(socket) {
    socket.write('Echo server\r\n');
    socket.pipe(socket);
});
 socket.on('data', function (data) {

var connection = mysql.createConnection({
  host     : 'seizedserver.com',
  user     : 'federal',
  password : '123456',
  database : 'hanging_tree'
});

connection.connect();
/*
connection.query('SELECT data from gps', function(err, rows) {
  if (err) throw err;

  console.log('The solution is: ', rows[0]);
});
*/
var post  = {data: data};
var query = connection.query('INSERT INTO gps SET ?', post, function(err, result) {
});
console.log(query.sql); 

connection.end();
  });
server.listen(1337, '127.0.0.1');
计划是将传入数据插入到我创建的mysql表中,但我不确定我是否正确使用了数据事件

我是否正确使用数据事件

当我使用forever运行脚本时,会出现此错误

/var/www/html/server.js:9
 socket.on('data', function (data) {
 ^
ReferenceError: socket is not defined
    at Object.<anonymous> (/var/www/html/server.js:9:2)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3
error: Forever detected script exited with code: 8
/var/www/html/server.js:9
socket.on('data',函数(data){
^
ReferenceError:未定义套接字
在对象上。(/var/www/html/server.js:9:2)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
位于Function.Module.runMain(Module.js:497:10)
启动时(node.js:119:16)
在node.js:902:3
错误:检测到脚本已退出,代码:8

socket
仅在服务器的回调中定义:

var server = net.createServer(function(socket) {
    socket.write('Echo server\r\n');
    socket.pipe(socket);
});

 // socket is undefined here
 socket.on('data', function (data) {

var connection = mysql.createConnection({
  host     : 'seizedserver.com',
  user     : 'federal',
  password : '123456',
  database : 'hanging_tree'
});
应该是:

var server = net.createServer(function(socket) {
    socket.write('Echo server\r\n');

    // socket is defined here and in scope
    socket.on('data', function (data) {

    var connection = mysql.createConnection({
      host     : 'seizedserver.com',
      user     : 'federal',
      password : '123456',
      database : 'hanging_tree'
    });

    socket.pipe(socket);
});

为什么要使用套接字来代替路由?您使用的是某种框架(Express等)吗?好吧,错误说明了一切-
socket。on
的使用超出了定义的范围。我需要一个套接字开始和结束的示例。这就是给我带来麻烦的地方。