I am trying following code at node js using mysql but getting error \"Cannot enqueue Query after invoking quit.
var mysql = require(\'mysql\');
var connection
I see two problems in your code:
connection.end()
synchronously, but your queries run in a asynchronous flow. You have to call connection.end()
only when you've finished the second query.for
loop to run assynchronous calls (you outter loop).To accomplish what you're trying to do, you have to consider those assynchronous scenarios. You could use promises or a module like async, that provides you a lot of methods to deal with assyncronous flows, like async.each():
connection.query(queryString, function(err, rows, fields) {
if (err) throw err;
async.each(rows, function (row, callback) {
console.log('Product Name: ', row.product_name);
var emp_query = 'SELECT * FROM tbl_employer';
connection.query(queryString, function(emp_err, emp_rows, emp_fields) {
if (emp_err) callback(emp_err);
for (var e in emp_rows) {
console.log('Employer Name: ', emp_rows[e].company_name);
}
callback();
});
});
}, function (err) {
connection.end();
}
});
Now it will guarantee that connection.end()
will just be called when all your queries have finished.