进入官网后首先点击TRY FREE

云服务器建立数据库 建立云端数据库_mongodb


云服务器建立数据库 建立云端数据库_mongodb_02


云服务器建立数据库 建立云端数据库_mongodb_03


云服务器建立数据库 建立云端数据库_中间件_04


云服务器建立数据库 建立云端数据库_云服务器建立数据库_05


云服务器建立数据库 建立云端数据库_云服务器建立数据库_06


云服务器建立数据库 建立云端数据库_云服务器建立数据库_07


云服务器建立数据库 建立云端数据库_mongodb_08


云服务器建立数据库 建立云端数据库_bc_09


云服务器建立数据库 建立云端数据库_bc_10


云服务器建立数据库 建立云端数据库_mongodb_11


云服务器建立数据库 建立云端数据库_mongodb_12


云服务器建立数据库 建立云端数据库_中间件_13


云服务器建立数据库 建立云端数据库_bc_14


云服务器建立数据库 建立云端数据库_mongodb_15


云服务器建立数据库 建立云端数据库_云服务器建立数据库_16

创建database

云服务器建立数据库 建立云端数据库_bc_17


云服务器建立数据库 建立云端数据库_云服务器建立数据库_18


云服务器建立数据库 建立云端数据库_bc_19


数据库创建完成

云服务器建立数据库 建立云端数据库_中间件_20


点击连接按钮

云服务器建立数据库 建立云端数据库_中间件_21


选择第二个选项

云服务器建立数据库 建立云端数据库_云服务器建立数据库_22


复制连接到项目中,输入密码和数据库名称

云服务器建立数据库 建立云端数据库_云服务器建立数据库_23

在服务端做一些相关配置

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

云服务器建立数据库 建立云端数据库_mongodb_24

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需要指向的对象。 – 出自

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

云服务器建立数据库 建立云端数据库_中间件_25