我正在经历我的第一个 node .js项目.我安装了mongodb,有一台服务器.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新手,但我认为这是一个没有正确配置的路径?

推荐答案

您收到的错误表明MongoDB的NPM包没有正确安装.

这里的解决方案取决于您计划如何利用NPM.NPM package manager有两种不同的操作模式:本地和全局.

第一种(and default)模式是"本地".

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

要更正此问题,请将cd添加到该文件夹并键入npm install mongodb.当这个过程完成后,你应该有node_modules/mongodb文件夹可用.

还可以使用npm install -g mongodb全局安装MongoDB包.如果要使用大量 node ,这非常有用.js命令行的东西,但如果你正在部署整个东西,就没那么有用了.

Side Note:大约有package.json个标准在不断变化.package.json是包含给定模块所有依赖项的标准化方法.这允许您在项目/包的根目录下运行npm updatenpm install,并有效地"拉入"所有依赖项.这大大简化了部署过程和保持依赖关系一致的过程.

Node.js相关问答推荐

无法从ejs Web应用程序中的正文中提取数据

Firebase-admin筛选器.或只考虑第一个WHERE子句

NodeJS:zlib.gzipSync 在不同平台上给出不同的明文输出

使用更新版本仍然找到包@angular/fire但不支持原理图

Prisma,只有一个用户的行可以有真值,@@unique(userId, isActive)

npm 在 Windows 终端中不工作

MongoDB - 查找查询以判断是否存在少量字段,结合字段上的 AND

如何在 node.js 环境中从 WebAssembly (Rust) 调用异步 JavaScript 导入函数?

Node.js 变量声明和范围

我可以向NPM添加调试脚本吗?

Node.js + Express 上的多个视图路径

为什么我们要为 Angular 2.0 安装 Node.js?

User.findOrCreate 函数是做什么的,什么时候在Passport 中调用它?

如何在离线时安装 npm 包?

Puppeteer 记录在 page.evaluate

要求('babel/register')不起作用

使用 Monit 而不是基本的 Upstart 设置有什么好处?

Mongoose:模式与模型?

FireStore 如果不存在则创建一个文档

我无法全局安装 nodemon,nodemon无法识别