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

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安装,我试图重新安装,但没有任何想法?

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

 npm install mongoose 

不要使用-g开关。

顺便说一句:我以pipe理员模式运行命令提示符。

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

你必须在命令行中调用

npm install mongoose

记得从你的项目的根path调用这个命令

使用--save选项进行安装:

 npm install mongoose --save 

这增加了mongoose到Heroku用来build立你的应用程序的package.json

你可以做两件事之一,使其运行: –

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) 另一种方法是在当地安装mongoose,而不是全球通过

npm install mongoose

在下面的任何一个之后,你会在“bot.js”目录下看到node_modules – > mongoose文件夹,这意味着mongoose已经成功安装了。

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

 npm install mongoose 

它会工作,如果一切都好,那么你会得到在你的terminal

 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) 

我在我的Mac中遇到同样的问题,并在聚光灯下进行search,发现mongoose安装在/ usr / local / node_modules(当我运行'npm install mongoose'时)。 将mongoose文件夹移动到〜(home)node_modules,其中npm被挂起以实际安装,解决了我的问题。

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

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

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

这种方法使得我们为每个基于节点的项目创build相同的所需节点模块,但是这是可以的,因为我们只需要为每个项目发出一次“npm install”命令

如果你已经在全球安装mongoose(npm install -g mongoose),那就去做吧

 % npm link mongoose 

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

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

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

您正在使用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 

在窗户上,如果你这样做

 npm install mongoose 

它会默认安装在您的C:\ Drive上

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

它会给你同样的错误。

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

从文档/博客

一般来说,经验法则是:

如果您正在安装您要在程序中使用的东西,请使用require('whatever'),然后将其安装到您的项目的根目录。

如果你正在安装你想在你的shell中使用的东西,在命令行或者其他地方安装,那么它的二进制文件就会在你的PATH环境variables中。