【问题标题】:Node.js error Error: Cannot find module 'mongoose'Node.js 错误错误:找不到模块“猫鼬”
【发布时间】:2012-01-27 05:39:13
【问题描述】:
C:\Users\Nick\Desktop\turntablefm\Bots\Super Bot>node bot.js

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module 'mongoose'
    at Function._resolveFilename (module.js:334:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at Object.<anonymous> (C:\Users\Nick\Desktop\turntablefm\Bots\Super Bot\db.j
s:1:78)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Module.require (module.js:357:17)

我已经使用 npm install 安装了它,我尝试重新安装,但没有任何想法?

【问题讨论】:

  • 如果对您有帮助,请随时标记答案。干杯
  • 我用pip安装猫鼬。但我有同样的问题。谁能指出我正确的方向。?

标签: javascript mongodb node.js mongoose npm


【解决方案1】:

尝试使用以下命令安装 mongoose:

npm install mongoose

不要使用 -g 开关。

顺便说一句:我在管理员模式下运行命令提示符。 Reference

【讨论】:

  • 来自doc:一般来说,经验法则是:如果你正在安装你想在你的程序中使用的东西,使用require('whatever'),然后在本地安装它, 在您的项目的根目录。如果您要在 shell、命令行或其他地方安装要在 shell 中使用的东西,请全局安装,以便其二进制文件最终出现在您的 PATH 环境变量中。
【解决方案2】:

你可以做两件事来让它运行:-

1) 全局安装 mongoose,步骤如下:-

a)npm install mongoose -g

b) 进入 bot.js 所在的应用目录,然后运行

npm link mongoose

解释 :- 当你通过 npm 全局安装一个包时,它会被下载到全局 node_module 文件夹。对于我(Mac 用户)来说,它位于 /usr/local/lib/node_modules/mongoose 下。我们将其链接到您尝试运行 module.js 的目录。

2) 另一种方法是本地安装猫鼬,而不是全局安装通过

npm install mongoose

执行完其中一个之后,你会看到'bot.js'目录下的node_modules --> mongoose文件夹,这意味着mongoose已经安装成功了。

现在,运行 node bot.js ,它会工作。

【讨论】:

  • 最清晰的解释恕我直言,它帮助我理解了。 +1!
【解决方案3】:

使用--save 选项安装:

npm install mongoose --save

这会将 mongoose 添加到 Heroku 用来构建您的应用程序的 package.json

【讨论】:

    【解决方案4】:

    你必须在命令行中调用

    npm install mongoose

    记得从项目的根路径调用此命令

    【讨论】:

      【解决方案5】:
      npm install mongoose
      

      它会起作用,如果一切正常,那么您将在终端中获得关注

      mongoose@4.4.19 node_modules/mongoose
      ├── sliced@1.0.1
      ├── hooks-fixed@1.1.0
      ├── regexp-clone@0.0.1
      ├── mpromise@0.5.5
      ├── muri@1.1.0
      ├── kareem@1.0.1
      ├── mpath@0.2.1
      ├── bson@0.4.23
      ├── mquery@1.10.0 (sliced@0.0.5, debug@2.2.0, bluebird@2.10.2)
      └── mongodb@2.1.18 (readable-stream@1.0.31, es6-promise@3.0.2, mongodb-core@1.3.18)
      

      【讨论】:

        【解决方案6】:

        我在我的 Mac 中遇到了同样的问题,并在聚光灯下进行了搜索,发现 mongoose 安装在 /usr/local/node_modules 中(当我运行“npm install mongoose”时)。将 mongoose 文件夹移动到 ~(home) node_modules ,其中 npm 应该实际安装修复了我的问题。

        【讨论】:

        • 是的 - 这里也一样。我 npm 将它安装到我的 Windows 机器上的用户/名称并收到此错误。当我将 node_modules 向上移动几个目录时,它工作得很好。
        【解决方案7】:

        npm install 在 pwd(当前工作目录)中创建“node_modules”

        随着应用程序的增长,所需模块的数量也会增加,更好的方法是维护一个 package.json(参考:https://stackoverflow.com/a/14226133/832147),然后只发出“npm install”而不是安装每个模块。

        作为在 Heroku 等平台上部署应用程序时的扩展,您可以忽略 (git ignore) 项目的巨大 node_modules 目录。 Heroku 通过读取你的 package.json 来安装你的依赖模块

        这种方法让我们为每个基于节点的项目创建相同的必需节点模块,但没关系,因为我们只需要为每个项目发出一次“npm install”命令

        【讨论】:

          【解决方案8】:

          如果您已经全局安装了 mongoose (npm install -g mongoose),那么请执行

          % npm link mongoose
          

          在项目目录中。这对我有用。

          【讨论】:

            【解决方案9】:

            我遇到了同样的问题。但我只是使用mongose 而不是mongoose。 软件包名称几乎相似。

            【讨论】:

              【解决方案10】:

              在包含 bot.js 的目录中,是否有一个 node_modules 文件夹,其中有一个 mongoose 文件夹?你的 mongodb 服务器在运行吗?

              您也可以通过在项目的根目录中调用 node(无参数,以打开 REPL)并尝试在其中要求 mongoose 来测试它。

              【讨论】:

              • 没有,但是里面有一个带有猫鼬的 node_modules 文件夹是不是在错误的位置?在我公寓的另一台计算机上,它工作正常,并且在这台计算机上的所有相同的execpt 都出现此错误
              • 如果您确定它完全一样,那么请确保 mongodb 已正确安装并在出现问题的机器上运行。
              【解决方案11】:

              您使用的是 mongoose 不支持的 windows 操作系统。从这个错误信息可以看出:

              C:\>npm install mongoose
              npm http GET https://registry.npmjs.org/mongoose/2.5.10
              npm http 304 https://registry.npmjs.org/mongoose/2.5.10
              npm http GET https://registry.npmjs.org/hooks/0.2.0
              npm http GET https://registry.npmjs.org/mongodb/0.9.9-4
              npm http 304 https://registry.npmjs.org/mongodb/0.9.9-4
              npm http 304 https://registry.npmjs.org/hooks/0.2.0
              npm WARN package.json mongodb@0.9.9-4 No README.md file found!
              npm ERR! notsup Unsupported
              npm ERR! notsup Not compatible with your operating system or architecture: mongo
              db@0.9.9-4
              npm ERR! notsup Valid OS:    linux,darwin,freebsd
              npm ERR! notsup Valid Arch:  any
              npm ERR! notsup Actual OS:   win32
              npm ERR! notsup Actual Arch: x64
              
              npm ERR! System Windows_NT 6.1.7601
              npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
              ejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "mongoose"
              npm ERR! cwd C:\
              npm ERR! node -v v0.8.18
              npm ERR! npm -v 1.2.2
              npm ERR! code EBADPLATFORM
              npm ERR!
              npm ERR! Additional logging details can be found in:
              npm ERR!     C:\npm-debug.log
              npm ERR! not ok code 0
              

              【讨论】:

                【解决方案12】:

                来自doc/blog

                一般来说,经验法则是:

                如果你要安装一些你想在你的程序中使用的东西, 使用 require('whatever'),然后在本地安装它的根目录 你的项目。

                如果你要安装一些你想用的东西 你的shell,在命令行或其他东西上,全局安装它,所以 它的二进制文件最终会出现在您的 PATH 环境变量中。

                【讨论】:

                  【解决方案13】:

                  只需在命令行中打开您的项目文件夹并运行以下命令,以便可以在 package.json 文件中添加 mongoose 依赖项。我 100% 确定您不会再遇到此类错误。

                  $ sudo npm install --save mongoose

                  【讨论】:

                    【解决方案14】:

                    对于 Typescript,我必须添加 @types/mongoose:yarn add -D @types/mongoose

                    【讨论】:

                      【解决方案15】:

                      npm install mongoose --save //它会在 package.json 中添加文件 --如果仍然没有解决关闭你的cmd和编辑器并再次打开

                      【讨论】:

                        【解决方案16】:

                        如果您使用 Yarn:

                        yarn add mongoose
                        

                        【讨论】:

                          【解决方案17】:

                          如果你这样做,在 Windows 上

                          npm install mongoose
                          

                          它将默认安装在您的 C:\ 驱动器上

                          如果你尝试从 D:\ 驱动器运行一些 *.js 文件

                          它会给你同样的错误。

                          所以我猜安装目录和 *.js 文件应该有相同的根目录。

                          【讨论】:

                            猜你喜欢
                            • 2022-07-05
                            • 2017-01-29
                            • 1970-01-01
                            • 1970-01-01
                            • 2015-10-01
                            • 2016-05-11
                            • 2013-02-03
                            • 2019-01-31
                            • 1970-01-01
                            相关资源
                            最近更新 更多