首页 > 解决方案 > 无法读取未定义的属性

问题描述

我在节点 JS 中编写服务器端应用程序,我在 MySQL 中使用数据库。

我收到“TypeError:无法读取未定义的属性‘激活’”

当我在 MySQL 终端中手动执行时,我所做的请求应该说“空集”。

当我尝试在我的代码中使用它并且输入无效的 discord_key 时,它会返回一个错误,但我希望它只返回一个错误警报,以便我可以捕获它并使用该信息。

function checkKey(key) {
    var activated = "";
    var sqlcheck = "SELECT activated from authentification where discord_ key = ?";
    console.log("in function");
    DB.query(sqlcheck, [key], function (err, result) {
        if (err) throw (err);
        activated = result[0].activated;
    });
    if (!activated) {
        console.log("null");
        return ("NULL");
    } else {
        console.log("used");
        return ("used");
    }
}

我应该得到:

该请求发送一个空集,因此密钥不存在。

谢谢您的帮助!

标签: mysqlsqlnode.js

解决方案


如果没有结果,您可以这样写:

if (err) throw (err);
activated = result.length ? result[0].activated : false;

如果没有结果,那将返回 false。


推荐阅读