当前位置: 首页 > 面试题库 >

Node.js / MySQL:在node.js的错误日志中打印实际查询

查飞星
2023-03-14
问题内容

我有一些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(err)打印错误本身以及查询的一部分,但仅打印发生错误的行。我想打印整个查询。


问题答案:

根据docs,您可以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");
});


 类似资料:
  • 问题内容: 为什么我无法连接到mysql服务器? 在同一台服务器上,Apache / PHP服务器正在运行,并且连接正常! 更新 问题答案: 如果以前能解决这个问题,我的第一个猜测就是您已经在后台运行了持有连接的node.js脚本副本。 我认为连接被拒绝是tcp / ip错误消息,而不是来自MySQL的消息,它表明该连接未运行或正在其他端口上运行或通过套接字运行。 您可以尝试远程登录到端口3308

  • 问题内容: 在我的网络分析中,我将数据记录为纯文本文件。我想每天轮换日志,因为它记录了太多数据。目前,我正在使用bunyan旋转日志。 我面临的问题 这是正确的旋转文件,但轮换日志文件是在名称,等我要的文件名是, 我无法编辑软件包的来源,因为我们正在通过NPM 安装模块。 所以我的问题是-Node.js中是否还有其他符合我要求的日志轮换? 问题答案: Winston 确实 支持使用文件名中的日期进

  • 问题内容: 我已经阅读了一些在node.js中使用mysql的示例,并且对错误处理有疑问。 大多数示例都进行如下错误处理(为简便起见): 每次发生sql错误时,这都会导致服务器崩溃。我想避免这种情况并保持服务器运行。 我的代码是这样的: 我不确定这是否是处理它的最佳方法。我也想知道查询的块中是否应该有一个。否则,连接可能会保持打开状态并随着时间的推移逐渐建立。 我习惯了Java 或在这里可以“干净

  • 本文向大家介绍Node.js利用debug模块打印出调试日志的方法,包括了Node.js利用debug模块打印出调试日志的方法的使用技巧和注意事项,需要的朋友参考一下 前言 大家都知道在node程序开发中时,经常需要打印调试日志。用的比较多的是debug模块,比如express框架中就用到了。下文简单举几个例子进行说明。文中相关代码示例,可在这里找到。 备注:node在0.11.3版本也加入了ut

  • 主要内容:启动和设置错误日志,查看错误日志,删除错误日志错误日志(Error Log)是 MySQL 中最常用的一种日志,主要记录 MySQL 服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等。 作为初学者,要学会利用错误日志来定位问题。下面介绍如何操作查看错误日志。 启动和设置错误日志 在 MySQL 数据库中,默认开启错误日志功能。一般情况下,错误日志存储在 MySQL 数据库的数据文件夹下,通常名称为 hostname.er

  • 问题内容: 我正在寻找一种在执行查询时对其进行调试的方法,我想知道是否有一种方法可以使MySQLdb在完成参数插入及所有操作之后打印出它所运行的实际查询?从文档中看,似乎应该有一个Cursor.info()调用,该调用将提供有关上次查询运行的信息,但是在我的版本(1.2.2)中不存在。 这似乎是一个显而易见的问题,但是对于我所有的搜索,我一直找不到答案。提前致谢。 问题答案: 我们在游标对象上发现