node.js找不到模块'mongodb'

时间:2013-01-09 00:23:21

标签: 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#windows后台的unix新手,但我认为这是一条未正确配置的路径?

11 个答案:

答案 0 :(得分:62)

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

此处的修复取决于您计划如何利用NPM。 NPM包管理器运行有两种不同的操作模式:本地和全局。

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

如果您转到server.js的文件夹,您会看到一个名为node_modules的子文件夹。在该文件夹下将是mongodb文件夹。如果该文件夹不存在,则该路径上未安装mongodb模块。

要更正此问题,cd到该文件夹​​并输入npm install mongodb。完成此过程后,您应该有node_modules/mongodb文件夹。

您还可以使用npm install -g mongodb全局安装MongoDB软件包。如果你使用了很多node.js命令行的东西,这很有用,但是如果要部署整个东西,那么它就没用了。

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

答案 1 :(得分:51)

尝试一段时间后安装它没有成功(因为我是mongo和node的新手),我确实错过了npm链接步骤。总而言之,我这样做了:

  1. npm install mongodb -g
  2. cd / path / to / my / app / folder
  3. npm link mongodb
  4. 有了这个,我可以在我的应用程序文件中执行此操作:require('mongodb')。

    以下是一些参考资料,如果您需要它们:

答案 2 :(得分:7)

这个问题可能是由以下原因之一引起的。

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

答案 3 :(得分:5)

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

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

一)npm install mongodb -g

b)转到你的app目录,其中module.js所在的位置,然后运行

npm link mongodb

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

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

npm install mongodb

遵循其中任何一个后,您将看到node_modules - &gt; 'module.js'目录下的mongodb文件夹,表示mongodb已成功安装。

答案 4 :(得分:3)

通过以下步骤全局安装mongodb:-

a)npm安装mongodb -g

b)转到模块.js所在的应用目录,然后运行

npm链接mongodb

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

答案 5 :(得分:1)

错误

jamsheed-h110m-s2ph:~/project/jamsheed/meanStack/mean$ node server.js
module.js:538
    throw err;
    ^
Error: Cannot find module 'mongodb'
    at Function.Module._resolveFilename (module.js:536:15)
    at Function.Module._load (module.js:466:25)
    at Module.require (module.js:579:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/haseeb/project/jamsheed/meanStack/mean/server.js:3:13)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)
    at Function.Module._load (module.js:489:3)

解决了

  

npm install mongodb

     

编辑package.json =&#34; mongodb&#34;:&#34; ^ 3.0.1&#34;,更改&#34; mongodb&#34;:&#34; 3.0.1&#34;,

答案 6 :(得分:0)

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

1。 NodeJS中使用的驱动程序: 即:var mongo = require(&#39; / usr / local / lib / node_modules / mongodb&#39;)。或者,您可以使用&#34; npm link&#34;正如早先的帖子所提到的,以避免漫长的道路。命令&#34; npm install -g mongodb&#34;在/ usr / local / lib下安装mongodb驱动程序(这是&#34; -g&#34;的意思)。这家伙花了几个小时安装,不知道为什么,所以请耐心等待!

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

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

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

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

完成工作!

答案 7 :(得分:0)

我遇到了同样的问题,我按照这些步骤解决了问题。

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

2.在命令shell中运行此命令(安装npm)

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

答案 8 :(得分:0)

可能是您正在尝试运行其他项目路径。我遇到了同样的问题,并通过以下几个步骤得到解决。

1。)使用命令shell &#34; cd / project path&#34;转到项目目录。

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

答案 9 :(得分:0)

我的问题是,当我最初创建我的package.json文件时,我已经创建了&#34;版本&#34; key对应于&#34; 1.0.0&#34;的值。当我将其更改为版本值以反映我想要在我的&#34;依赖关系&#34;关键,我摆脱了错误。下面是潜在修复的图片。注意&#34;版本&#34;和&#34; mongodb&#34;在&#34;依赖&#34;比赛。 enter image description here

答案 10 :(得分:0)

我遇到了同样的问题,但是在终端(npm install mongodb)中重新安装mongodb修复了该错误。另外,在重新安装之前,mongodb最初不在package.json中的依赖项列表中,因此似乎也需要在其中添加它。