我一直在尝试使用MSSQL模块查看创建两个函数,主要是一个从数据库表中读取数据并将其变成变量的函数。另一个将从获取请求中写入数据并更新数据库表。
我具有以下读取数据的功能,但登录后仍未得到任何响应,不确定我在做什么错。
let id = {};
let date = {};
let response = {};
let readLoggerData = function(err) {
if (err) throw err;
con.query('SELECT * FROM Logging ORDER BY Date DESC;'),
function(id, response, date) {
if (response) {
id = request.query('SELECT TOP 1 id from Logging;');
date = request.query('SELECT TOP 1 Date FROM Logging;');
response = request.query('SELECT TOP 1 Response from Logging;');
};
};
};
console.log(id);
});
答案 0 :(得分:1)
当您调用异步的东西时,您需要等待它完成。代码运行后,您的console.log()
会立即被调用,但是con.query()
可能要花费几秒钟。
要解决此问题:将console.log()
移至function()
函数的con.query()
部分以解决您的问题。我也允许自己重写它,因此它使用ES6语法(基本上只是删除功能)。您应该考虑在将来这样做。
let id = {};
let date = {};
let response = {};
let readLoggerData = err => {
if (err) throw err;
con.query('SELECT * FROM Logging ORDER BY Date DESC;'),
(id, response, date) => {
if (response) {
id = request.query('SELECT TOP 1 id from Logging;');
date = request.query('SELECT TOP 1 Date FROM Logging;');
response = request.query('SELECT TOP 1 Response from Logging;');
console.log(id);
};
};
};
哦,您也有语法错误。最后一个)
无效。