Node.js错误错误:无法找到模块' mongoose'

时间:2011-12-24 06:54:35

标签: javascript mongodb node.js mongoose npm

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安装了它,我尝试重新安装但是没有任何想法吗?

16 个答案:

答案 0 :(得分:42)

尝试使用此命令进行安装:

npm install mongoose

不要使用-g开关。

BTW:我在管理员模式下运行命令提示符。

http://prazjain.wordpress.com/2012/04/24/node-js-error-error-cannot-find-module-xyz/

答案 1 :(得分:11)

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

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

一)npm install mongoose -g

b)转到你的应用程序目录,其中有bot.js,然后运行

npm link mongoose

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

2)另一种方法是在本地安装mongoose,而不是全局安装

npm install mongoose

遵循其中任何一个后,您将看到node_modules - &gt; &#39; bot.js&#39;下的mongoose文件夹目录,这意味着已经成功安装了mongoose。

现在,运行节点bot.js,它将起作用。

答案 2 :(得分:7)

使用--save选项安装:

npm install mongoose --save

这会将猫鼬添加到Heroku用来构建应用的package.json

答案 3 :(得分:6)

您必须在命令行中调用

npm install mongoose

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

答案 4 :(得分:4)

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)

答案 5 :(得分:2)

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

答案 6 :(得分:1)

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”命令

答案 7 :(得分:1)

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

% npm link mongoose

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

答案 8 :(得分:0)

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

你也可以通过在项目的根目录,调用节点(没有args,打开REPL),并尝试在那里需要mongoose来测试它。

答案 9 :(得分:0)

您正在使用猫鼬不支持的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

答案 10 :(得分:0)

如果你做的话,在Windows上

npm install mongoose

默认情况下会在C:\ Drive

上安装它

如果您尝试从D:\ drive

运行一些* .js文件

它会给你同样的错误。

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

答案 11 :(得分:0)

来自doc/blog

  

一般来说,经验法则是:

     

如果您要安装要在程序中使用的内容,   使用require(&#39; what&#39;),然后在本地安装它   你的项目。

     

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

答案 12 :(得分:0)

只需在命令行中打开您的项目文件夹并在命令下运行,以便可以在package.json文件中添加猫鼬依赖项。我100%肯定不会再出现这种错误。

$ sudo npm install-保存猫鼬

答案 13 :(得分:0)

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

答案 14 :(得分:0)

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

答案 15 :(得分:0)

npm install mongoose --save //它将在package.json中添加文件 -如果仍然无法解决,请关闭您的cmd和编辑器,然后再次打开