【问题标题】:Cannot find module `mysql` node.js找不到模块“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 模块。

标签: mysql node.js


【解决方案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 mysqlnpm install -g mysql 都没有成功。

      原来我需要打开“Node.js 命令提示符”应用程序,而不是常规的命令提示符应用程序。一切都很好。

      我不知道他们的命令提示符在幕后做了什么,但我认为它与路径和环境变量有关。您可能想尝试一下。

      【讨论】:

        【解决方案7】:

        您可能需要更新 package.json 文件。使用以下命令

        npm install mysql --save
        

        【讨论】:

        【解决方案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】:

                我遇到了同样的问题。这是解决它的方法。

                1. 首先创建了一个项目目录,例如 (Users/home/proj)

                2. 然后转到 proj 文件夹。

                3. 运行npm init(这将创建packaje.json)。
                4. 运行 (npm install mysql)
                5. 检查 proj 文件夹,你应该看到 node_modules 文件夹,展开 node_modules 你应该看到 mysql 文件夹。
                6. 运行你的 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
                      

                      【讨论】:

                      【解决方案16】:

                      这对我有用

                      • 转到您的项目文件夹
                      • 运行以下命令:npm install mysql

                      【讨论】:

                        猜你喜欢
                        • 2011-07-14
                        • 1970-01-01
                        • 2019-05-12
                        • 2012-01-02
                        • 2017-02-18
                        • 2012-12-22
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多