重新抛出非 MySQL 错误 Node.js

Posted

技术标签:

【中文标题】重新抛出非 MySQL 错误 Node.js【英文标题】:Rethrow non-MySQL errors Node.js 【发布时间】:2019-06-15 01:26:42 【问题描述】:

您好,下面的代码从 mysql 数据库加载单个字段,但是当它到达 result[0].IdUtente 点时,会生成以下错误。我该如何解决?

错误:

 throw err; // Rethrow non-MySQL errors
        ^

TypeError: Cannot read property 'IdUtente' of undefined

代码:

var query = "SELECT IdUtente FROM Utente WHERE Username = " + sql.escape(Username) + " and Password=MD5(" + sql.escape(Password) + ") and Tipo!='Risorsa' ";
var ret=DbConfig.query(query, function (err, result) 
    if (err) 
        console.log("Errore login: " + err);
    
    else 
        console.log(result[0].IdUtente);
        IdUtente = result[0].IdUtente;

    

);

【问题讨论】:

我遇到了同样的错误。意识到这是由于 SQL 语法不正确造成的。确保您编写的 SQL 也是正确的。 【参考方案1】:

查询拉取空结果时会发生此错误。您必须首先使用result.length 属性检查结果的长度,只有当结果大于0 时,您必须使用索引结果。 请检查下面的代码。

var query = "SELECT IdUtente FROM Utente WHERE Username = " + sql.escape(Username) + " and Password=MD5(" + sql.escape(Password) + ") and Tipo!='Risorsa' ";
var ret=DbConfig.query(query, function (err, result) 
    if (err) 
        console.log("Errore login: " + err);
    
    else 
        //check to see if the result is empty
        if(result.length > 0)
            console.log(result[0].IdUtente);
            IdUtente = result[0].IdUtente;
       
    
);

【讨论】:

以上是关于重新抛出非 MySQL 错误 Node.js的主要内容,如果未能解决你的问题,请参考以下文章

Node.JS MySql 在循环中等待预期结果

在抛出非正值的同时获得两个价格之间的最小值的优雅方式

我收到一个错误:ER_SP_UNDECLARED_VAR: Undeclared variable: NaN 在尝试使用 jQuery 进行 AJAX 请求时

Java 异常 重写方法时抛出异常

Node学习——开篇

如何打印出非质数? PL/SQL [关闭]