我有一个多月以来有这个问题,我在stackoverflow和其他网站上阅读了所有相关的帖子,但没有一个与我合作! Node.js的MySQL模块未被Node.js识别
我已经安装了Node.js,如下所示:
apt-get install nodejs
然后按如下方式安装npm:
apt-get install npm
然后安装MySQL模块如下:
npm install -g mysql
我也试过以下但没有成功!
npm install mysql
当我像下面那样运行Node.js服务器时:
node /var/www/server.js
我明白了:
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)
server.js的内容如下
console.log("Hello World");
var mysql = require('mysql');
更新: 我用的时候
cd /var/www/
然后
npm install mysql
MySQL不起作用,我使用下面的连接到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();
我没有进入Node.js的高级设置,我喜欢处理简单的命令。
我非常感谢您的建议,因为每当我在服务器上安装Node.js时,我都会遇到此问题。感谢。
答案 0 :(得分:1)
尝试以下方法:
cd /var/www/
npm install mysql
这样,mysql模块将在本地安装在您的节点目录中。
我的猜测是你试图从另一个目录安装模块,而不是从server.js所在的位置安装模块。