3

我是 node.js 的新手并试图学习它。
在这里,我试图在 nodejs 中访问 mySQL 数据库。
我已经为此使用安装模块,npm install mysql但我没有在文件夹中获得任何 mysqlnode_modules文件夹。
但是从终端安装 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)
4

2 回答 2

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. 很方便!

于 2013-10-26T21:00:52.300 回答
1

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

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

于 2013-10-26T19:22:18.017 回答