Javascript Node.js mysql查询和网络连接

Javascript Node.js mysql查询和网络连接,javascript,mysql,node.js,Javascript,Mysql,Node.js,我有一个node.js脚本,它从电话系统接收SMDR数据,然后将其插入数据库。我现在的代码插入了除OperatorID(它将[object]插入该列)之外的所有内容。我不明白为什么会发生这种情况。有什么想法吗 var net = require('net'), mysql = require('mysql'), PORT = 1752, HOST = '192.168.10.2', pool = mysql.createPool({ host: 'local

我有一个node.js脚本,它从电话系统接收SMDR数据,然后将其插入数据库。我现在的代码插入了除OperatorID(它将[object]插入该列)之外的所有内容。我不明白为什么会发生这种情况。有什么想法吗

var net = require('net'),
   mysql = require('mysql'),
   PORT = 1752,
   HOST = '192.168.10.2',
   pool = mysql.createPool({
       host: 'localhost',
       port: 3306,
       user: 'root',
       password: 'root',
       database: 'mydb'
   });

function connectionListener(conn) {
    console.log('Listening for incoming calls...');
}

function logCall(phonenumber, operator) {
    pool.getConnection(function(err, connection) {
        if (!err) { // If no error exists 
            //var operID = '';
            var opquery = connection.query('SELECT OperatorID FROM tblOperators WHERE Phone_Login = ' + operator, function(err, rows) {
                if (err) {
                    console.error(err);
                }
                //operID = rows[0];
                //console.log(operID);
                console.log(rows[0]); //logs on console okay
                var query = connection.query('INSERT INTO incoming_calls(phone_number, OperatorID) VALUES("' + phonenumber + '", "' + rows[0] + '") ON DUPLICATE KEY UPDATE OperatorID=OperatorID, date_created=NOW()', function(err, rows) {//fails to insert rows[0]
                    if (err) {
                        console.error(err);
                    }
                    connection.release();
                });
            });
        } else {
            console.error(err);
        }
    });
}

function processdata(data) {
    var phonedata = data.toString().match(/([0-9]?)([0-9]{10})/),
    operdata = data.toString().match(/([*])([0-9]{4})/);
    if (phonedata !== null && operdata !== null) {
        var phonenumber = phonedata[2],
        oper = operdata[2];

       oper = oper.replace('*', '');
       //phonenumber = phonenumber.slice(0,3)+"-"+phonenumber.slice(3,6)+"-"+phonenumber.slice(6);
       logCall(phonenumber, oper);
    }
};

logCall('999-999-9999', '1203'); //where 1203 is valid
var conn = net.createConnection(PORT, HOST, connectionListener);
conn.on('data', processdata);
conn.setEncoding('utf8');
您需要指定

rows[0].OperatorID
当您现在尝试插入整行时,插入查询,这是一个对象

var query = connection.query('INSERT INTO incoming_calls(phone_number, OperatorID) VALUES("' + phonenumber + '", "' + rows[0].OperatorID + '") ON DUPLICATE KEY UPDATE OperatorID=OperatorID, date_created=NOW()', function(err, rows) {//...

非常感谢你,这让我很恼火,我只是没听清楚!