首页 > 解决方案 > 如何从表中读取sql数据并在nodejs中生成变量?

问题描述

使用 MSSQL 模块,我一直在尝试查看创建两个函数,主要是从数据库表中读取数据并将其转换为变量。另一个将从 get 请求写入数据并更新数据库表。

我有以下用于读取数据的内容,但登录后我没有得到任何响应,不确定我做错了什么。

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

标签: javascriptsql-servernode.js

解决方案


当你调用异步的东西时,你需要等待它完成。您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);
            };
        };
};

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


推荐阅读