我有一些Node.js代码,尝试通过以下方式更新数据库:
connection.query(command, function(err,rows) { if (err){ console.log(command); console.log("ERROR"); console.log(err); return; } console.log("good"); });
对于不同的“命令”值,将重复运行以上操作,从而生成对数据库的不同查询。问题在于,当出现错误时,错误的查询会显示在中console.log(command)。这是因为将查询添加到队列的时间与实际执行查询的时间不同,因此每次这些时间的“ command”值都不相同。有没有解决的办法?
console.log(command)
注意:console.log(err)打印错误本身以及查询的一部分,但仅打印发生错误的行。我想打印整个查询。
console.log(err)
根据docs,您可以query.sql用来获取实际执行的查询。
query.sql
var post = {id: 1, title: 'Hello MySQL'}; var query = connection.query('INSERT INTO posts SET ?', post, function(err, result) { // Neat! }); console.log(query.sql); // INSERT INTO posts SET `id` = 1, `title` = 'Hello MySQL'
在这种情况下,
connection.query(command, function (err, rows) { if (err) { console.log('this.sql', this.sql); //command/query console.log(command); console.log("ERROR"); console.log(err); return; } console.log("good"); });