I am able to run sql query and fetch records from MySql database using the following code
var mySql = require("mysql");
var connection = mySql.createConnection({
host : "localhost",
user : "root",
password : "rahul",
database : "testDb" //schema
});
connection.connect();
connection.query("select * from departmentTbl",function(err,rows,fields){
if(err){
console.log(err.stack);
}
for(var i = 0; i < rows.length; i++){
console.log("DepartmentId : \'"+rows[i]["deptId"]+"\', DepartmentName \'"+rows[i]["deptName"]+"\'");
}
});
connection.end();
But I am not able to run the code if I use A+ Promise api A+ Promise API
As shown below,
var Promise = require("promise");
var mySql = require("mysql");
var connection = mySql.createConnection({
host : "localhost",
user : "root",
password : "rahul",
database : "testDb" //schema
});
var p = Promise.resolve(connection.connect());
var sqlQuery = p.then(function(con){
return Promise.resolve(con.query);
});
sqlQuery.then(function(q){
q("select * from departmentTbl").then(function(err,row,fields){
if(err){
console.log(err.stack);
}
for(var i = 0; i < rows.length; i++){
console.log("DepartmentId : \'"+rows[i]["deptId"]+"\', DepartmentName \'"+rows[i]["deptName"]+"\'");
};
}).done(function(){
connection.end();
});
});
Please tell me where I am going wrong, Why I am not able to resolve the Promise.
My code doesn't even throws error
I am able to solve it the mysql Node and PromiseJS using below implementation as follows,
var Promise = require("promise");
var mySql = require("mysql");
var connection = mySql.createConnection({
host : "localhost",
user : "root",
password : "rahul",
database : "testDb" //schema
});
connection.connect();
var getDepartments = function(){
return new Promise(function(resolve,reject){
connection.query("select * from departmentTbl",function(err,rows,fields){
if(err){
return reject(err);
}else{
return resolve(rows);
}
}); // query
}); // Promise
} // getDepartments
getDepartments().then(function(rows){
for(var i = 0; i < rows.length; i++){
console.log("DepartmentId : \'"+rows[i]["deptId"]+"\', DepartmentName \'"+rows[i]["deptName"]+"\'");
}
}).catch(function(e){
console.log(e.stack);
});
connection.end();