尝试使用节点连接到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 = ? ...
我已经花了数小时试图使其正常工作,但我真的很受困扰,可以寻求帮助。
答案 0 :(得分:0)
pool.query('SELECT * FROM accounts ...
实际上是正确的方法。
错误:“长度未定义”来自这种情况results.length > 0
。
您的IF语句应如下所示:
results && results.length >= 0
这样,您将确保有一个结果(以及一个元素),并且它的长度大于0。