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新手,但是我认为这是未正确配置的路径吗?

Eddie asked 2020-02-20T15:36:43Z
10个解决方案
67 votes

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

此处的解决方法取决于您计划如何利用NPM。 NPM程序包管理器的操作具有两种不同的操作模式:本地和全局。

第一种(也是默认的)模式是“本地”。

如果转到带有package.json的文件夹,您将看到一个名为package.json的子文件夹,该文件夹下面是npm update文件夹。 如果该文件夹不存在,则该路径上未安装npm install模块。

若要更正此问题,请将package.json设置到该文件夹,然后键入package.json。完成此过程后,您应该具有npm update文件夹。

您还可以使用package.json在全球范围内安装MongoDB软件包。如果您使用大量的node.js命令行,这将很有用,但如果部署整个程序,则将没有太大用处。

旁注:package.json周围有一个不断发展的标准。package.json是包括给定模块的所有依赖项的标准化方法。 这使您可以在项目/程序包的根目录中运行npm updatenpm install,并有效地“拉入”所有依赖项。 这极大地简化了部署过程和保持依存关系的过程。

Gates VP answered 2020-02-20T15:37:25Z
55 votes

尝试安装一段时间后未成功(因为我是mongo和node的新手),我确实错过了npm link步骤。 因此,总结一下,我这样做:

  1. npm安装mongodb -g
  2. cd /路径/到/我/应用/文件夹
  3. npm链接mongodb

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

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

  • npm全球与本地
  • 链接
  • Mongo DB简介
Jair Reina answered 2020-02-20T15:38:20Z
7 votes

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

1)您尚未安装mongodb模块。

2)您已在全局上下文中安装了mongodb,但未链接到当前应用程序。

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

要么

2)执行npm install mongodb -g全局安装mongo DB模块,然后将其跳转到应用程序顶层目录并使用命令npm link mongodb命令进行链接。

有用的链接

[HTTP://blog.node将是.org/2011/03/23/年排名-1-0-global-vs-local-installation/]

[HTTPS://那匹马加上.org/doc/林肯.HTML]

Vishwanath gowda k answered 2020-02-20T15:39:20Z
5 votes

您可以执行以下两项操作之一来使其运行:-

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

a)npm install mongodb

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

npm install mongodb

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

2)另一种方法是在本地安装mongodb,而不是通过以下方式全局安装

npm install mongodb

完成以上任何一个操作后,您将在“ module.js”目录下看到node_modules-> mongodb文件夹,这意味着mongodb已成功安装。

satyam kumar answered 2020-02-20T15:40:16Z
3 votes

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

a)npm安装mongodb -g

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

npm链接mongodb

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

Puneet Kumar answered 2020-02-20T15:40:54Z
1 votes

错误

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安装mongodb

编辑package.json =“ mongodb”:“ ^ 3.0.1”,更改“ mongodb”:“ 3.0.1”,

jamsheed answered 2020-02-20T15:41:27Z
0 votes

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

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

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程序中要求它。

任务完成!

Daniel C. Deng answered 2020-02-20T15:42:15Z
0 votes

我遇到了同样的问题,并按以下步骤解决。

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

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

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

mangesh answered 2020-02-20T15:42:48Z
0 votes

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

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

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

Ankush Chaudhary answered 2020-02-20T15:43:17Z
0 votes

我的问题是,当我最初创建package.json文件时,已经使“版本”键对应于“ 1.0.0”的值。 当我将其更改为版本值以反映要在“ dependencies”键下使用的版本时,我摆脱了该错误。 下面是可能的修复方法的图片。 注意“ dependencies”下的“ version”和“ mongodb”如何匹配。enter image description here

CopyLeft answered 2020-02-20T15:43:39Z
translate from https://stackoverflow.com:/questions/14226410/node-js-cannot-find-module-mongodb