重新抛出非MySQL错误 Node.js

3

你好,下面的代码从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 是正确的。 - Pranav Soni
1个回答

4

当查询返回空结果时,会出现此错误。您必须首先使用 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;
       }
    }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接