搭建云端数据库【MongoDB】

本文介绍了如何通过MongoDB官方网站创建数据库,利用Mongoose连接并配置数据库,包括设置mongoose中间件、配置文件和数据库连接的详细步骤。重点讲解了`console.error.bind`的作用以及如何确保`this`指向的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MongoDB官方网站:http://www.cloud.mongodb.com

进入官网后首先点击TRY FREE
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
初始化数据库
在这里插入图片描述

创建database
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
数据库创建完成
在这里插入图片描述
点击连接按钮
在这里插入图片描述
选择第二个选项
选择第二个选项
复制连接到项目中,输入密码和数据库名称
复制连接到项目中,输入密码和数据库名称

在服务端做一些相关配置

1、在根目录下新建db目录并创建config.js文件输入以下连接信息

在这里插入图片描述

module.exports = {
    // dbs: 'mongodb://139.159.253.110:27017/test1'
    dbs: 'mongodb+srv://<username>:<passwd>@cluster0.mw8jo.mongodb.net/<dbname>?retryWrites=true&w=majority'
}

2、修改根目录app.js

这里使用了mongoose作为中间件作为与mongodb的连接方式。
Mongoose提供了一个直观的、基于模式的解决方案来建模应用程序数据,
所以,我选择使用Mongoose作为连接MongoDB的中间件。
它的优点:
·直观
·安装即用(包括内置类型转换、查询构建、业务逻辑挂钩、验证等等)

先cd到项目目录下,完成对mongoose中间件的安装

npm install mongoose --save

在app.js中加入以下代码

// 引入mongoose中间件
const mongoose = require('mongoose')
const dbconfig = require('./db/config')
// 连接数据库
mongoose.connect(dbconfig.dbs, {useNewUrlParser: true,useUnifiedTopology: true})
const db = mongoose.connection
// 连接异常,console.error.bind的写法是什么意思?大概就是如果有异常就指定在控制台输出错误的意思吧
db.on('error', console.error.bind(console, 'connection error:'));
// 或许也可以这样写:db.on('error', () => { console.error('connection error:') };
db.once('open', function() {
  console.log('mongoose 连接成功')
});

console.error.bind为什么这么写?是什么意思?
1、为什么这么写?
因为db.on的第二个参数让传的是个函数,而不是函数的返回值
2、是什么意思?
缘起
在JS中,函数是非常单纯的,仅仅只是函数而已,一个函数在被调用之前,对于它来说this的指向是不知道的。
默认情况下,谁调用函数,this指向谁。
解释
也就是说,当传递函数交给别人执行的时候,对于函数来说this指向新的调用者了。
console.error(),调用error函数的时候,this指向console对象,但是你把error函数传给别的东西的时候,this也变成了别的东西。
解决
如何保证this的指向不变呢?答案就是函数的原型链上有一个bind函数,这个函数可以设置函数的this指向,并且绑定后是永久的不允许修改了的,就是不会变了,bind函数的第一个参数就是this需要指向的对象。 – 出自https://segmentfault.com/q/1010000014280054

3、出现以下界面则为连接成功

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值