如何从表中读取SQL数据并将其转换为Node.js中的变量?

时间:2018-07-30 19:58:02

标签: javascript sql-server node.js

我一直在尝试使用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);
});

1 个答案:

答案 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);
            };
        };
};

哦,您也有语法错误。最后一个)无效。