我已经创建了一个TCP服务器。当请求到来时,服务器解析该数据并从该数据中提取mac_address。根据mac_address Mysql查询从终端表中选择一行并使用该mac_address和数据将数据推送到Report Table。
问题是;
如果请求mac_address不在终端表中,则INSERT查询仍会插入包含终端表所包含的最后一个接收到的mac_address的数据。
我期待服务器接收到未定义mac_adress的数据时,它应该告诉;
console.log('Error while performing SELECT Query.');
主程序:
var server = net.createServer(function(socket) {
socket.setEncoding('utf8')
socket.on('data', function(data) {
var reqdata = JSON.parse(data);
connection.query('SELECT * FROM terminal WHERE mac_address=?', [reqdata.mac_address], function(err, rows, fields) {
if (!err) {
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
finaldata = {
mac_address: row.mac_address,
factory: row.factory,
coop: row.coop,
machine: row.machine,
};
}
} else {
console.log('Error while performing SELECT Query.');
}
connection.query('INSERT INTO report SET ?', finaldata, function(err, result) {
if (!err) {
console.log("RESULT : INSERTION OKAY");
console.log("\n" + "END" + "\n");
} else {
console.log('Error while performing INSERT Query.');
console.log("\n" + "END" + "\n");
}
});
});
});//socket.on
socket.pipe(socket);
});//createServer
提前谢谢。