Goal: Do a simple query to the database.
Expected results: "please print something!" and the results from the query are printed on the terminal.
Actual results: Nothing is printed on the terminal.
Errors: No error message.
Here is the db.js file:
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'todoDB'
});
connection.connect();
connection.query('SELECT * FROM categories', function (err, res, fields) {
console.log("please print something!")
if (err) throw err;
console.log(res);
});
connection.end();
I execute this file using:
node db.js
On the mysql cli, I am able to do this query without any problem with the database name, credentials, and query given above.
I know that connection.connect() works since when I'm inputting the code below, the terminal prints "Database is connected!" I think the problem occurs at connection.query, but I am not sure why.
connection.connect(function(err){
if(!err){
console.log("Database is connected");
} else {
console.log("Error while connecting with database");
console.log(err);
}
});
I've looked through all the related questions on stackoverflow and tried them, but none of the solutions seems to resolve the problem that I have.
connection.connect();and you don't needconnection.end();. Remove them both and try again. Since you are not running each step in your example asynchronously it is possible you're ending your connection before your query has completed depending on a number of variables such as: network speed, app resources, and the size of results generated by your query.connection.connect()andconnection.end(). There is still nothing that is printed on the terminal.if (err) throw err;to...if (err) console.log(err);You can also adddebug: trueto yourmysql.createConnectionconfigs which will provide verbose details on all incoming and outgoing packets onstdout.node db.jshere