I am having this issue since more than one month and I read all related posts on stackoverflow and other sites but none of them worked out with me! The MySQL module of Node.js is not getting recognized by Node.js
I have installed Node.js as below:
apt-get install nodejs
Then installed the npm as below:
apt-get install npm
Then installed the MySQL module as below:
npm install -g mysql
I also tried the below without any success too!
npm install mysql
When I run the Node.js server like below:
node /var/www/server.js
I get:
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'mysql'
at Function._resolveFilename (module.js:332:11)
at Function._load (module.js:279:25)
at Module.require (module.js:354:17)
at require (module.js:370:17)
at Object.<anonymous> (/var/www/server.js:2:13)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:32)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
The content of server.js as below
console.log("Hello World");
var mysql = require('mysql');
Update: When I used
cd /var/www/
then
npm install mysql
The MySQL doesn't work, I use the below to connect to MySQL
var db_config = {
host : 'localhost',
user : 'xxx',
password : 'xxx',
database : 'xxx'
};
var connection;
function handleDisconnect(){
connection = mysql.createConnection(db_config);
connection.connect(function(err) {
if(err) {
console.log('error when connecting to db:', err);
setTimeout(handleDisconnect, 2000);
}
});
connection.on('error', function(err) {
console.log('db error', err);
if(err.code === 'PROTOCOL_CONNECTION_LOST') {
handleDisconnect();
}
else{
throw err;
}
});
}
handleDisconnect();
I am not into advance settings of Node.js and I like to work on simple commands.
I would greatly appreciate your advise because I face this issue whenever I install Node.js on the server. Thanks.