MySQL TypeError:无法读取未定义的属性“查询”

时间:2019-10-27 03:30:29

标签: javascript mysql sql nodes

尝试使用节点连接到MySQL数据库,但我在下面始终收到此错误。

TypeError:无法读取未定义的属性“查询”

我相信我已经需要了所有模块和依赖项。

MySQL连接:

var pool = mysql.createConnection;
var pool = mysql.createConnection({
    connectionLimit : 10,
    host     : 'host',
    user     : 'username',
    password : 'password',
    database : 'dbname'
});

错误源于 mysql.pool.query:

app.post('/', function(request, response, mysql) {
    var username = request.body.username;
    var password = request.body.password;
    if (username && password) {
        mysql.pool.query('SELECT * FROM accounts WHERE username = ? AND password = ?', [username, password], function(error, results, fields) {
            if (results.length > 0) {
                request.session.loggedin = true;
                request.session.username = username;
                response.redirect('/Login_Page_V2');
            } else {
                response.send('Incorrect Username and/or Password!');
            }           
        });

我已经尝试过另一种代码,但是这会导致未定义错误“长度”。

pool.query('SELECT * FROM accounts WHERE username = ? ...

我已经花了数小时试图使其正常工作,但我真的很受困扰,可以寻求帮助。

1 个答案:

答案 0 :(得分:0)

pool.query('SELECT * FROM accounts ...实际上是正确的方法。

错误:“长度未定义”来自这种情况results.length > 0

您的IF语句应如下所示:

results && results.length >= 0

这样,您将确保有一个结果(以及一个元素),并且它的长度大于0。