目标:对数据库进行简单查询。
预期结果:";请打印一些东西"并且来自查询的结果被打印在终端上。
实际结果:终端上没有打印任何内容。
错误:没有错误消息。
这是db.js
文件:
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'todoDB'
});
connection.connect();
connection.query('SELECT * FROM categories', function (err, res, fields) {
console.log("please print something!")
if (err) throw err;
console.log(res);
});
connection.end();
我使用执行此文件
node db.js
在mysql-cli上,我可以进行此查询,而不会对上面给出的数据库名称、凭据和查询产生任何问题。
我知道connection.connect()
工作,因为当我输入下面的代码时;数据库已连接"我认为问题发生在connection.query
,但我不确定为什么。
connection.connect(function(err){
if(!err){
console.log("Database is connected");
} else {
console.log("Error while connecting with database");
console.log(err);
}
});
我已经查看了stackoverflow上的所有相关问题并尝试了它们,但似乎没有一个解决方案能解决我的问题。
因此,mySQL V8使用caching_sha2_password作为新的身份验证标准,而nodeJS插件不支持该标准。连接到数据库并尝试创建一个使用本机密码身份验证类型的新用户。
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';