找不到模块`mysql`

时间:2013-10-26 17:28:16

标签: node.js

我是node.js的新手,并试图学习它。
在这里,我试图访问nodejs中的mySQL数据库。
我使用npm install mysql为此安装模块,但我没有在node_modules文件夹中获取任何mysql文件夹。
但是从终端安装mysql模块时我没有收到任何错误。 因为这个问题,我无法在程序中使用mysql模块而且我收到错误

module.js:340
    throw err;
          ^
Error: Cannot find module 'mysql'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/opt/lampp/htdocs/1nodeapp/mysql.js:4:12)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)

2 个答案:

答案 0 :(得分:7)

通常,在您的目录中获取package.json并从那里安装会很有帮助。尝试创建一个名为package.json的文件,并使用以下内容填充它(如果您要创建一个您将继续使用的节点项目,那么无论如何您都希望这样做):

{
  "name": "PROJECT NAME",
  "version": "0.0.1",
  "author": "YOUR NAME",
  "dependencies": {
    "mysql": "2.x.x"
  }
}

一旦到位,您就可以运行npm install,并且应该看到创建了node_modules文件夹并填充了mysql源代码。将来,如果您想要添加依赖项并将其自动保存到package.json,则可以运行npm install whatever --save。很方便!

答案 1 :(得分:0)

当您尝试安装新模块时,npm正在当前位置查找node_modules目录,如果没有,则查找父目录,依此类推。 如果node_module出现在某处,那么您的模块将安装在那里。 这可能就是你的情况。

如果要在当前目录中安装mysql模块,只需创建要安装它的空node_modules目录。