我对node.js有疑问。
我使用dgram.createSocket('udp4')
读取socket的数据。
我解析数据并写入mysql db(使用https://npmjs.org/package/mysql)代码:
var result = {
CarID: "0094455",
Lat: 55.0405,
Lon: 82.981,
Time: 1373435075
};
connectionPool.getConnection(function(err, connection) {
connection.query('SELECT * FROM lastPosition WHERE CarID = ? ORDER BY Time DESC LIMIT 1',[result.CarID],
function(err, rows, fields) {
if (rows.length) {
connection.query('UPDATE lastPosition SET ? WHERE CarID = ?', [result, result.CarID]);
} else {
connection.query('INSERT INTO lastPosition SET ?', result);
}
});
connection.end();
});
问题是我在“lastPosition”表中看到了关键CarID的行重复,尽管这排除了代码。我哪里出错了?
答案 0 :(得分:9)
我用代码修复了它:
connectionPool.getConnection(function(err, connection) {
connection.query('INSERT INTO `lastPosition` SET ? ON DUPLICATE KEY UPDATE Lat=VALUES(Lat), Lon=VALUES(Lon), Time=VALUES(Time)', result);
connection.end();
});