node.js找不到模块“mongodb”

我正在通过我的第一个node.js项目。 我已经安装了mongodb,有一个server.js文件,当我尝试运行它时,我得到这个错误

module.js:340 throw err; ^ Error: Cannot find module 'mongodb' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:362:17) at require (module.js:378:17) 

我很确定我已经安装了mongodb,我是来自C#窗口背景的unix新手,但我认为这是一个没有正确configuration的path?

您收到的错误表明MongoDB的NPM软件包未正确安装。

这里的解决scheme取决于你打算如何利用NPM。 NPM包pipe理器有两种不同的操作模式:本地和全局。

第一个( 默认 )模式是“本地”。

如果您使用server.js转到该文件夹​​,您将看到一个名为node_modules的子文件夹。 在该文件夹下将是一个mongodb文件夹。 如果该文件夹不存在,那么mongodb模块不会安装在该path上。

要更正此问题,请cd到该文件夹​​并inputnpm install mongodb 。 当这个过程完成后,你应该有node_modules/mongodb文件夹可用。

您也可以使用npm install -g mongodb全局安装MongoDB软件包。 如果你正在使用大量的node.js命令行的东西,这是非常有用的,但是如果你正在部署整个事情,那么它就不那么有用了。

注意package.json有一个不断发展的标准。 package.json是包含给定模块的所有依赖关系的标准化方法。 这允许您在项目/包的根目录下运行npm updatenpm install ,并有效地“引入”所有依赖项。 这极大地简化了部署过程和保持依赖关系的过程。

尝试了一段时间来安装它没有成功(因为我是新来的mongo和节点),我错过了npm链接步骤的确如此。 所以只是总结一下,我做到了这一点:

  1. npm安装mongodb -g
  2. cd / path / to / my / app /文件夹
  3. npm链接mongodb

有了这个,我可以在我的应用程序文件中做这个:require('mongodb')。

这里有一些参考资料,以防你需要它们:

  • npm全球vs本地
  • npm链接
  • Mongo DB简介

这个问题是由于以下原因之一造成的。

1)您尚未安装mongodb模块。

2)你已经在全局环境中安装了mongodb,但没有链接到当前的应用程序。

1)遍历应用程序的顶层目录并执行npm install mongodb ,这样会安装mongodb模块,你的项目会自动检测到它。

要么

2)执行npm install mongodb -g全局安装mongo DB模块,然后使用命令npm link mongodb命令对应用程序的顶层目录和链接进行Ttaverse。

有用的链接

http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/

https://npmjs.org/doc/link.html

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

1)用以下步骤在全局安装mongodb : –

a) npm install mongodb -g

b)转到您的应用程序目录,module.js所在的位置,然后运行

npm link mongodb

说明: – 通过npm全局安装软件包时,将其下载到全局node_module文件夹。 对于我(Mac用户),它位于/ usr / local / lib / node_modules / mongodb下 。 我们把它连接到你想运行module.js的目录。

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

npm install mongodb

在完成其中的任何一个之后,你会看到“module.js”目录下的node_modules – > mongodb文件夹,这表示mongodb已经成功安装。

我是MongoDB的新手。 花了几个小时通过npm安装mongodb后,我终于得到了图片。 看,实际上有三个你需要处理的“mongodb”(我正在使用OSX):

1. NodeJS中使用的驱动程序:var mongo = require('/ usr / local / lib / node_modules / mongodb')。 或者,您可以使用前面的post中提到的“npm link”来避开漫长的道路。 命令“npm install -g mongodb”在/ usr / local / lib下安装mongodb驱动程序(这就是“-g”的意思)。 这家伙花了几个小时来安装,不知道为什么,所以要耐心等待!

2. mongodb实用程序(即UNIX可执行文件命令)。 你可以从http://www.mongodb.org/downloads下载它们。 它包含允许您启动mongodb数据库的mongod命令。 所以在我的/ usr / local / bin中,我创build了一个符号链接mongod,指向/usr/local/lib/node_modules/mongodb-osx-x86_64-2.6.7/bin/mongod,所以我可以从任何地方执行mongod 。

3. / data / db指向的mongodb数据库。 因此,在/ data下,我创build了一个符号链接db,指向/ Users / your_user_id / Database / mongodb(或者任何你喜欢放置的地方),其中mongodb是一个可以通过mkdir创build的空目录。

因为你已经安装了上面的#2 mongodb,所以你可以在命令行执行mongod,这将在mongodb#3下创build和启动数据库。

因为你有npm安装的mongodb#1,所以现在你可以在你的NodeJS程序中要求它。

任务完成!

我得到了同样的问题,我通过这些步骤解决。

1.转到您的项目目录(cd您的项目path)

2.在command shell中运行这个命令(install npm)

运行你的项目(例如节点app.js)

也许你正试图运行其他项目path.I面临同样的问题,并通过下面给出的几个步骤得到解决。

1.)使用命令shell “cd / project path”转到您的项目目录

2.)现在运行你的项目。

我的问题是,当我最初创build我的package.json文件,我已经使“版本”键对应的值“1.0.0”。 当我改变版本值来反映我想在我的“依赖关键”下使用的版本,我摆脱了错误。 下面是潜在的修复的图片。 注意“dependencies”下的“version”和“mongodb”是如何匹配的。 在这里输入图像描述