gpt4 book ai didi

mysql - Node.js连接mysql数据库回调函数未执行

转载 作者:行者123 更新时间:2023-11-29 15:36:30 24 4
gpt4 key购买 nike

我正在尝试将我的node.js应用程序连接到mySQL数据库,但它似乎是con.connect()con.query()的回调函数code> 不被执行。这是我的代码的连接部分:

const mysql = require('mysql');
const con = mysql.createConnection({
host: "localhost",
user: "user",
password: "pass",
database: "db",

});

app.get('/timetracking/dbTest', (req, res) => {
var error1;
var r;



con.connect(function(err){
s = 3;
res.send(err);
});

var s = 1;

con.query("SELECT * FROM Employee", function (err, result, fields) {
error1 = err;
res.send("yes");
r = result;
s = 2;
});
if (error1) res.send(error1 + "fail");
else res.send(r + "ok" + s);
});

应用程序正常启动,我可以在浏览器中查看该网站,但得到的结果是“undefinedok1”。这意味着发送变量的值不会在回调函数中更改。 mysql 模块已安装。此外,如果我输入例如,我不会收到错误消息数据库用户的密码无效。我无法想象为什么他们不改变。

最佳答案

回调代码与方法的其余部分异步运行。您需要在每个连续的回调中运行代码,或者使用 async/await 或 Promise。

对现有代码进行最简单的调整(徒手,可能有语法错误):

app.get('/timetracking/dbTest', (req, res) => {
var error1;
var r;

con.connect(function(err){
s = 3;
if (err) {
return res.send(err);
}

var s = 1;

con.query("SELECT * FROM Employee", function (err, result, fields) {
error1 = err;

r = result;
s = 2;

if (error1) res.send(error1 + "fail");
else res.send(r + "ok" + s);
});
});
});

关于mysql - Node.js连接mysql数据库回调函数未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58192527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com