本地已安装MongoDB时,开发Node.js应用是否需安装MongoDB Node.js驱动?
核心结论
必须安装对应的Node.js驱动,这一步和你本地是否已经部署MongoDB服务端没有任何关联
为什么和本地装没装MongoDB没关系
很多新手容易在这里犯糊涂,总觉得“我电脑都把MongoDB装完跑起来了,为啥还要额外装个npm包”,本质是没分清两个完全独立的组件:
- 你本地安装部署的MongoDB,是数据库服务程序:它的作用是在本地指定端口(默认27017)监听请求、存储数据、执行增删改查的实际逻辑,本身不提供任何可以直接给Node.js调用的接口能力。换个说法,这个服务哪怕开着,你用Node.js发的请求它根本读不懂,因为两边说的不是一套通信规则。
- 你通过
npm install mongodb安装的包,是MongoDB官方提供的Node.js生态对接驱动:它相当于两者之间的翻译桥梁,负责把Node.js代码里写的JS格式的操作指令,转成MongoDB服务能识别的通信协议格式;同时把MongoDB返回的二进制响应结果,转成Node.js可以直接处理的JS对象。
几个容易踩的坑
- 哪怕你本地根本不安装MongoDB服务,只要项目需要对接公网/内网的远端MongoDB实例,
mongodb驱动包依然是项目必须安装的依赖,和数据库服务部署在什么位置没有任何关系。 - 如果你平时习惯用Mongoose这类ODM框架做开发,框架本身会把官方
mongodb驱动作为内置依赖自动安装,不是说用了Mongoose就可以跳过驱动安装的环节——本质上还是在用官方驱动,只是帮你做了语法层面的封装,让写代码更省事而已。 - 如果你没安装这个驱动就直接写连接逻辑,Node.js运行时会直接抛出
Cannot find module 'mongodb'的模块缺失错误,根本无法正常建立数据库连接。
内容的提问来源于stack exchange,提问作者Vikash Kumar
相关产品推荐
相关产品推荐

