javascript - MySQL TypeError:无法读取未定义的属性“查询”
问题描述
尝试使用节点连接到 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 = ? ...
我花了几个小时试图让它工作,但我真的被困住了,我可以使用一些帮助。
解决方案
pool.query('SELECT * FROM accounts ...
实际上是正确的方法。
错误:“长度未定义”来自这种情况results.length > 0
。
您的 IF 语句应如下所示:
results && results.length >= 0
这样你就可以确定有一个结果(以及一个元素)并且它的长度大于 0。
推荐阅读
- mysql - 选择某些列从未失败某些条件的行
- reactjs - 在渲染函数返回时反应注册页面语法错误
- bokeh - 散景:x_range 的 CustomJS 更改导致重复因素或子因素错误
- api - Syncfusion TreeGrid 和带有 WebAPI 的网格在删除时不起作用
- dart - Flutter/Dart 中的驾照验证
- facebook - Gatsby 中的 Facebook 插件(如按钮、页面插件、评论...)
- javascript - 未处理的拒绝 SequelizeDatabaseError:关系“bar”的列“foo_bar”已经存在
- javascript - 装饰字段在 TypeScript 中给出只读错误
- angular - 如何使用异步等待来防止在对象的array.length上获得0?
- python - 如何为我的 Django 选择参数导入数据?