Node.js 使用nodejs将数据库(sql server)中的数据保存到全局变量中

Node.js 使用nodejs将数据库(sql server)中的数据保存到全局变量中,node.js,Node.js,我试图将数据库中的数据保存到一个全局变量中,以便在其他脚本中使用它 我正在使用sqlServer和nodejs var sql = require("mssql"); const config = { server : "", database : "", user : "", password : "", }; var table = []; function getCord() { // Create instence of connectio

我试图将数据库中的数据保存到一个全局变量中,以便在其他脚本中使用它

我正在使用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\u examp\nodejs>node connect.js
[]

您已经创建了一个同步函数,并且对数据库的查询是异步的。因此,当发出
console.log
时,您的请求查询仍处于挂起状态。你可以这样做

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

您已经创建了一个同步函数,并且对数据库的查询是异步的。因此,当发出
console.log
时,您的请求查询仍处于挂起状态。你可以这样做

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

谢谢你的回答,你能告诉我如何在桌子上打圈吗?谢谢你的回答,你能告诉我如何在桌子上打圈吗?