🦄 2024 独立开发者训练营,一起创业!(早鸟优惠在5天后结束)查看介绍 / 立即报名 →

Node.js 与 MongoDB

连接到 MongoDB 数据库

刚发布了新课程《Node.js 与 MongoDB》,介绍了使用 Node.js 控制 MongoDB 数据库的方法。写入,读取,更新,还有删除数据。在本地安装一个 MongoDB,跟着 MongoDB 的课程练习一下,先了解一下 MongoDB 本身提供的方法去处理数据库里数据。

让 Node.js 与 MongoDB 结合到一块儿,需要一套方法,MongoDB 官方提供了一套方法叫:node mongodb native。课程里我用的是 Mongoose,这个 Mongoose 有点像是 Laravel 里的 Eloquent, 或者 Rails 框架里的 Active Record,可以到宁皓网上找一下这两个框架的课程,先去了解一下,会有帮助。

安装 MongoDB

在专门介绍 MongoDB 的时候,我在本地用 Docker 创建了一个 MongoDB 容器。如果你还不习惯用 Docker ,可以直接在本地安装 MongoDB 数据库,使用系统的包管理工具去安装一个 MongoDB。Windows 上用 Chocolatey,macOS 用 Homebrew

macOS:Homebrew

brew install mongodb

Windows:Chocolatey

choco install mongodb

完成以后应该需要创建一个数据库目录(Windows 省略 sudo):

sudo mkdir /data/db

macOS 上得修改一下这个目录的拥有者(Windows 可省略这一步):

sudo chown -R wanghao /data/db

然后执行 mongod ,可以启动 MongoDB 数据库管理系统。

mongod

MongoDB 图形化界面

Robo 3t 提供了一个图形化界面,可以管理 MongoDB 数据库。你可以查看与管理数据库,集合,还有文档。用系统包管理工具可以安装这个软件。

macOS:Homebrew

brew install caskroom/cask/robo-3t

Windows:Chocolatey

choco install robo3t

Mongoose

启动 MongoDB 以后,在 Node.js 项目里安装一下 Mongoose 这个 Package 以后,就可以使用它去控制 MongoDB 数据库了。

安装 Mongoose:

yarn add mongoose

在项目里导入 Mongoose:

const mongoose = require('mongoose')

配置 Mongoose 使用 Promise:

mongoose.Promise = global.Promise

创建与连接到指定的数据库:

const uri = 'mongodb://localhost:27017/ravent'
const options = {
  useMongoClient: true,
}

mongoose.Promise = global.Promise
mongoose
  .connect(uri, options)
  .then(db => console.log('😄 连接数据库成功'))
  .catch(error => console.log('😿 连接数据库失败'))

现在,我们就可以使用 Mongoose 里的方法去处理数据库了。

现在订阅宁皓网,可以学习关于 Node.js 的所有课程。

Node.js

评论

皓皓 是否考虑出一个设计模式的系列

你花些时间研究一下,写一写,然后你再录成视频 :) 加油 ~ 每天都要学习哦,少聊一点。

擦!皓皓是啥鬼 输入法!!!!

我用五笔。

突然看到五笔输入,不禁要感慨下,记得小学我妈用五笔,就让我也学习这个,结果后来,我拼音比她五笔敲得快(估计是因为她敲键盘速度而不是输入法本身的缺陷)。

哈哈,我的五笔还是在山木学的。

记得要写学习笔记啊。有博客了吗?你用 gitbook 也可以,必须得分享你的学习成果。

gitbook是王皓老师写电子书那个吗

是的,用什么都行。你得及时分享出你都做了什么,还有想法。

嗯嗯 好的 !

最近在跟着学习mongodb这个部分,但是mongoose最近提示说5.x以上版本,mongoose.connect(uri, options) 不需要options了。但是我遇到一个问题,也是连不上服务器,我是把mongodb放在docker container里面,并且mongodb在运行中,可是mongoose说'MongoNetworkError',具体error是:MongoError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
我网上查询很多,都说是我的mongoDB没有启动,可是我真的启动了
MongoDB shell version v3.6.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.2
难道是因为在container里面,所以有别的一些config但是我没有设定?求问。谢啦 皓哥。

Update: 用docker需要match下port number

:)

皓哥你好:如果对于这节课不用本地的mongoDB, 用docker的应该怎么做?因为之前的一门课是用docker运行mongoDB, 因此我打算接着上门课的方法使用mongoDB。 谢谢了

你可以创建运行一个 MongoDB 容器,设置一下这个容器的端口映射就可以了,就是用一个本地上的端口映射到容器里运行 MongoDB 服务用的端口。

谢谢皓哥!弱弱的问一下,您能简单的说一下这个应该怎么操作吗?或者参考某个文件也行。谢谢了🙏

可以用 docker 命令直接基于一个镜像运行一个容器,比如用 mongo 这个镜像创建一个容器。运行的时候用 -p 选项设置公开的端口,比如 -p 27017:27017,意思就是让本地的 27017 这个端口对应容器里的 27017 这个端口。这样你在本地运行的项目就可以通过 27017 这个端口连接到在容器里运行的 mongo 服务了。https://hub.docker.com/_/mongo

非常感谢皓哥!还有麻烦问一下,您做的那个小白兔系列还有后续课程吗?

还有一些 :)

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点