找不到模块“mysql”node.js
Posted
技术标签:
【中文标题】找不到模块“mysql”node.js【英文标题】:Cannot find module `mysql` node.js 【发布时间】:2013-08-10 15:51:44 【问题描述】:我是 nodejs 的新手。为了连接mysql,我使用命令在节点上安装了mysql
,
npm install mysql
我在安装时没有收到任何错误。然后我尝试执行以下代码,
var mysql = require("mysql");
但是当我尝试执行它时它显示以下错误。
C:\node\mysql>node app.js
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> (C:\node\mysql\app.js:1:75)
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)
我尝试了一些建议,例如使用全局安装 mysql,
npm install -g mysql
但是没有任何效果。请帮忙!!!
请注意我的工作环境,
操作系统:Windows7 节点版本:0.10.15 NPM 版本:1.3.5
【问题讨论】:
您是否从运行npm install mysql
的同一目录运行脚本?
另外,使用npm install -g
是全局安装。
@MorganARRAllen 谢谢。更正。 :)
@MorganARRAllen 如何在同一个目录下运行?
尝试从 app.js 所在的同一目录运行 npm ls
。这将列出为该项目安装的 npm 模块。
【参考方案1】:
我刚遇到同样的问题,发现是因为模块安装在:
./node_modules/node-mysql/node_modules/
所以,我只是把它们都搬走了:
mv ./node_modules/node-mysql/node_modules/* ./node_modules/
【讨论】:
我使用 npm install -g mysql 安装了不止一次,但我得到:/usr/local/lib/node_modules/mysql# ls node_modules bignumber.js readable-stream require-all,我不知道'找不到node-mysql,请告知上面的路径,因为它不起作用 我使用的是mysql2 2.2.5版本,它没有cardinal,但是helper.js需要cardinal,如下所示。如何解决这个问题?错误:无法遍历依赖关系图:无法从 node_modules\mysql2\lib\helpers.js 所需的 '\node_modules\mysql2\lib' 中找到模块 'cardinal'【参考方案2】:我的node
安装在C:\some-dir\nodejs-0.10.35\
首先导航到同一目录node
安装:cd C:\some-dir\nodejs-0.10.35
然后npm install mysql
我将我的应用程序放在同一个目录中:C:\some-dir\nodejs-0.10.35\applications\demo.js
有效。
【讨论】:
我使用的是mysql2 2.2.5版本,它没有cardinal,但是helper.js需要cardinal,如下所示。如何解决这个问题?错误:无法遍历依赖关系图:无法从 node_modules\mysql2\lib\helpers.js 所需的 '\node_modules\mysql2\lib' 中找到模块 'cardinal'【参考方案3】:您似乎对npm install
的工作原理感到困惑。
npm install -g mysql
将像您建议的那样全局安装,而不是本地安装。
npm install mysql
将在本地安装,将模块放入./node_modules/mysql
。这意味着您正在运行的脚本需要从包含 node_modules
的同一目录中运行。
【讨论】:
【参考方案4】:npm install mysql --save
这将更新您的 package.json 文件。
【讨论】:
【参考方案5】:你可以用
解决这个问题ln -s /usr/local/lib/node_modules /YOURPROJECTFOLDER/node_modules
【讨论】:
对我来说,这个真的克服了错误“找不到模块'mysql'” 实际上,ln -s /YOURPROJECTFOLDER/node_modules /usr/local/lib/node_modules
对我有用(Debian 10)【参考方案6】:
我遇到了同样的问题(当然我在 Windows 8 上)。我试过npm install mysql
和npm install -g mysql
都没有成功。
原来我需要打开“Node.js 命令提示符”应用程序,而不是常规的命令提示符应用程序。一切都很好。
我不知道他们的命令提示符在幕后做了什么,但我认为它与路径和环境变量有关。您可能想尝试一下。
【讨论】:
【参考方案7】:您可能需要更新 package.json 文件。使用以下命令
npm install mysql --save
【讨论】:
此exact same answer 是在您添加此邮件前整整 5 个月添加的。【参考方案8】:npm install mysql2 --save
并且需要这个
var mysql = require("mysql2");
【讨论】:
【参考方案9】:导航到主目录中的文件夹/node_modules
,然后通过点击以下命令安装mysql:sudo npm install mysql
这将在/node_modules
文件夹内创建一个名为mysql
的文件夹。
现在在主文件夹中使用node app.js
命令运行您的应用程序。它应该工作并与mysal服务器建立连接。
【讨论】:
【参考方案10】:我有同样的错误,请运行
npm install
将解决问题。有时由于某种原因,mysql 包被损坏、删除或丢失,只需运行上面将修复一切。
【讨论】:
【参考方案11】:我注意到npm install -g mysql
已将 mysql2 保存在 node_modules 中。刚刚改了
require('mysql')
到
require('mysql2')
它成功了。
【讨论】:
【参考方案12】:我遇到了同样的问题。这是解决它的方法。
首先创建了一个项目目录,例如 (Users/home/proj)
然后转到 proj 文件夹。
运行npm init
(这将创建packaje.json)。
运行 (npm install mysql
)
检查 proj 文件夹,你应该看到 node_modules 文件夹,展开 node_modules 你应该看到 mysql 文件夹。
运行你的 app.js
【讨论】:
【参考方案13】:npm install MySQL --save
这是因为你没有在你的包中安装 MySQL。您在系统环境中没有安装 MySQL 就导入了这个
【讨论】:
【参考方案14】:如果使用 package.json,只需在下面添加并在您的项目中运行“npm install”。
“依赖”:“mysql”:“2.12.0”
【讨论】:
【参考方案15】:我发现如果你运行会发生这种情况 npm 安装 没有在你的 package.json 中定义依赖项......即
...
"author": "Author",
"dependencies" :
"mysql": "2.12.0",
,
"license": "ISC"
...
定义依赖..然后运行
npm install
【讨论】:
npm install mysql --save
将为您添加此依赖项,而无需您手动编辑文件【参考方案16】:
这对我有用
转到您的项目文件夹 运行以下命令:npm install mysql
【讨论】:
以上是关于找不到模块“mysql”node.js的主要内容,如果未能解决你的问题,请参考以下文章