节点.js mysql 查询和网络连接
Node.js mysql queries and net connection
我有一个node.js脚本,它从电话系统接收SMDR数据,然后将其插入数据库。我现在拥有的代码插入了除 OperatorID 之外的所有内容(它将 [对象对象] 插入该列(。我不知道为什么会发生这种情况。有什么想法吗?
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
在您的 INSERT 查询中,因为您现在正在尝试插入整行,这是一个对象。
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) {//...
相关文章:
- 节点不是持久的网络连接
- 检测与流星的3G网络连接
- 如何通过AJAX调用检查网络连接
- 在 JavaScript 中检查网络连接
- 节点.js mysql 查询和网络连接
- 科尔多瓦 IOS 8.1 打开应用程序时如何检查网络连接
- 检查网络连接已连接/已断开
- 使用IONIC的IOS没有网络连接功能问题
- 断开网络连接时出现消息(SamsungSmart电视应用程序)
- 正在检查Cordova和AngularJS中的网络连接状态
- AngularJS/Cordova应用程序中网络连接断开时显示弹出窗口
- 检查javascript中是否存在网络连接
- 什么'当你'I’我失去了网络连接
- 通过Firefox扩展检查网络连接
- 使用ngCordova检查活跃的网络连接,如果在ionic中不是活跃的,就退出应用
- 如何仅在有网络连接的情况下更新屏幕/网站
- 等到网络连接后再启动节点webkit应用
- jQuery.Get将请求排队,直到网络连接可用
- 如何根据网络连接的可用性切换基础层
- 如何根据网络连接的可用性切换基础层