请帮帮我。
我正在使用node-mysql2库
我有SQL查询,每当运行查询时,如果查询中的某些变量为空,就会触发此错误。这通常发生在会话变量为空时。AgentID =空或DealerID =空。
错误源于mysql2 connection.js文件
C:\inetpub\wwwroot\pavstockallocatebot\node_modules\mysql2\lib\connection.js:538
if (sql.constructor === Commands.Query) {
^
TypeError: Cannot read properties of undefined (reading 'constructor')
- 触发位置:**
query(sql, values, cb) {
let cmdQuery;
if (sql.constructor === Commands.Query) {
cmdQuery = sql;
} else {
cmdQuery = Connection.createQuery(sql, values, cb, this.config);
}
this._resolveNamedPlaceholders(cmdQuery);
const rawSql = this.format(cmdQuery.sql, cmdQuery.values !== undefined ? cmdQuery.values : []);
cmdQuery.sql = rawSql;
return this.addCommand(cmdQuery);
}
它冻结了我的整个应用程序。并且不允许我重新启动应用程序。我该如何添加一个错误处理程序来检查变量是否未定义或为空,以避免出现此错误。当我出现此错误时,请适当地处理它。
2条答案
按热度按时间jvlzgdj91#
有许多编码风格,但这是一种解决方案。
它使应用程序崩溃,因为这是一个“未捕获”的错误。所以让我们捕获它。
理想情况下,你应该检查一下
sql
是否真实,以及在任何逻辑触及这部分代码之前,你的sql连接是否已经建立,但是这可能会演变成一个更大的关于搭建和服务器逻辑架构的讨论。e37o9pze2#
检查是否有帮助
或