I'm trying to save data from database into a global variable to use it in an other script
I'm using sqlServer and 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();
this is what I'm getting as result
C:\Users\Lara\Desktop\soap_examp\nodejs>node connect.js []
You have created a synchronous function and your query to the database is asynchronous. So when console.log
is raised your req.query still is pending. You can do something like this
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));
thank you for your answer, can you please tell me how to loop over the table (table)?