Node.JS - MySQL模块无法识别

时间:2014-08-24 14:28:38

标签: javascript mysql node.js

我有一个多月以来有这个问题,我在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时,我都会遇到此问题。感谢。

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

cd /var/www/
npm install mysql

这样,mysql模块将在本地安装在您的节点目录中。

我的猜测是你试图从另一个目录安装模块,而不是从server.js所在的位置安装模块。