温馨提示:本文翻译自stackoverflow.com,查看原文请点击:node.js - save data from database (sql server) into a global variable using nodejs
node.js

node.js - 使用nodejs将数据库(SQL Server)中的数据保存到全局变量中

发布于 2020-03-27 11:44:18

我正在尝试将数据库中的数据保存到全局变量中以在其他脚本中使用

我正在使用sqlServer和nodejs

var sql = require("mssql");
const config   = {
    server : "",
    database : "",
    user : "",
    password : "",
};

var table = [];

function getCord() {
    // Create instence of connection
    var conn = new sql.ConnectionPool(config);
    var req = new sql.Request(conn);
    // Connecting to database
    conn.connect(function(err){
        if(err){
            console.log(err);
            return;
        }
        // Getting result
        var queryString = "SELECT * FROM  XXXX";
        req.query(queryString, function(err, recordset){
            if(err){
                console.log(err)enter code here;
                return;
            }
            else{
                //console.log(JSON.stringify(recordset));
                table = recordset;
            }
            conn.close();
        });
    });
    console.log(JSON.stringify(table));
}
getCord();

这就是我得到的结果

C:\ Users \ Lara \ Desktop \ soap_examp \ nodejs> node connect.js []

查看更多

查看更多

提问者
Lara
被浏览
16
ItsMyLife 2019-07-03 23:17

您已经创建了一个同步函数,并且对数据库的查询是异步的。因此,当console.log引发您的req.query仍处于待处理状态。你可以做这样的事情

   function getCord() {
       return new Promise((resolve, reject) => {
           // Create instence of connection
           var conn = new sql.ConnectionPool(config);
           var req = new sql.Request(conn);
           // Connecting to database
           conn.connect(function(err){
               if(err){
               console.log(err);
                  return;
            }
            // Getting result
            var queryString = "SELECT * FROM  XXXX";
            req.query(queryString, function(err, recordset){
                if(err){
                    console.log(err)enter code here;
                    return;
                }
                else{
                    //console.log(JSON.stringify(recordset));
                    table = recordset;
                }
                conn.close();
                resolve(true);
            });
         });
    });
}
getCord().then(() => console.log(table));