我是node的新手,已经用了一个多星期了,一切都很好,直到我尝试连接到mysql数据库,我没有运气。
我已经安装了必要的文件;
npm install mysql
我的代码如下:;
const mySQL = require('mysql');
const mySQLCon = mySQL.createConnection({
host: "localhost",
user: "username",
password: "password",
database: "databaseName"
});
function connectTest() {
mySQLCon.connect(function(err) {
if(err){
console.log(err.code);
console.log(err.fatal);
}
});
console.log(mySQLCon.state);
sSQL = "SELECT sField FROM tblName WHERE iID = 1";
mySQLCon.query(sSQL, function(err, rows, fields) {
if(err){
console.log("An error ocurred performing the query.");
return;
}
if (rows.length > 0) {
console.log(rows[0].sField);
} else {
console.log("No Records found!");
}
});
mySQLCon.end(function(){
// The connection has been closed
});
}
connectTest()
我正在使用;
console.log(mySQLCon.state);
查看连接的状态并显示“断开”。
我没有得到任何错误,当这个运行它只是不做任何事情。
数据库位于远程pc上,但是我使用相同的凭据从此计算机以其他方式成功连接到数据库,没有任何问题(navicat)。
我试着在本地数据库计算机上运行代码,看看这是否是问题所在,它做了同样的事情,没有连接,也没有错误。
任何帮助都会很感激,因为我完全迷失了方向,没有任何错误来指导我,我正在做我认为正确的事情!
谢谢
1条答案
按热度按时间soat7uwm1#
有两种可能。
首先,连接是异步的,您应该等待连接显式结束才能执行其他操作。
例子:
因此,第一种可能性是,您永远不会得到任何错误,因为连接有一个超时。因此,在到达时间之前,函数将挂起。
似乎可以使用选项更改超时
connectTimeout: 1000000
.第二种可能性是它实际上是连接的,因为你没有
console.log
告诉你你不知道。我让您参考我刚才向您描述的异步问题。