安装步骤
去官网下载MongoDB,https://www.mongodb.com/ ,在网站中找到Download按钮。下载会有点忙, 国外的服务器,你懂的。
下载后进行安装,安装没什么难度,但是对于新手建议选择默认安装,而不选择自己配置。等我们完全熟悉后再定制式配置。
安装时如果有安全软件,会报一些拦截,一律允许就好,不允许会安装失败的。
安装完成后,需要配置“环境变量”,目的是再命令行中直接使用,而不需要输入很长的路径了。
如嫌麻烦,或者有问题,在我的资源下载MongoDB安装包,直接解压即可
右键此电脑找到高级系统设置
找到环境变量
新建配置填写你的安装路径 D: … /bin
上面已经作了基本的数据库连接,并且已经连接成功。但是如果数据没有开启,或网络出现问题,我们并没有作这些意外处理,在写程序时,当主要功能完成时,我们要作意外处理和逻辑处理,让程序增加健壮性。
增加Promise的支持
我们在作这个init.js文件时,必须确保先连接数据库后,再作其他事情,所以我们需要在所有代码的外层增加一个Promise。
return new Promise((resolve,reject)=>{ //把所有连接放到这里 })连接失败自动重连
一般数据库连接失败,我们会重新连接,但这个重连也是需要有一个次数的,比如连接3次失败,我们在服务端抛出异常。 首先声明一个最大连接数maxConnectTimes.
let maxConnectTimes = 0当连接断开时,我们进行重连的代码如下:
mongoose.connection.on('disconnected',()=>{ console.log('***********数据库断开***********') if(maxConnectTimes<3){ maxConnectTimes++ mongoose.connect(db) }else{ reject() throw new Error('数据库出现问题,程序无法搞定,请人为修理......') } })当连接断开时,我们需要把连接次数加1,并重新连接数据库。当重连次数超过3次后,我们抛出了异常,并用reject()通知了promise。 同样当连接出错时,我们也要进行重连操作。
mongoose.connection.on('error',err=>{ console.log('***********数据库错误***********') if(maxConnectTimes<3){ maxConnectTimes++ mongoose.connect(db) }else{ reject(err) throw new Error('数据库出现问题,程序无法搞定,请人为修理......') } })全部文件如下:
const mongoose = require('mongoose') const db = "mongodb://localhost/smile-db" exports.connect = ()=>{ //连接数据库 mongoose.connect(db) let maxConnectTimes = 0 return new Promise((resolve,reject)=>{ //把所有连接放到这里 //增加数据库监听事件 mongoose.connection.on('disconnected',()=>{ console.log('***********数据库断开***********') if(maxConnectTimes<3){ maxConnectTimes++ mongoose.connect(db) }else{ reject() throw new Error('数据库出现问题,程序无法搞定,请人为修理......') } }) mongoose.connection.on('error',err=>{ console.log('***********数据库错误***********') if(maxConnectTimes<3){ maxConnectTimes++ mongoose.connect(db) }else{ reject(err) throw new Error('数据库出现问题,程序无法搞定,请人为修理......') } }) //链接打开的时 mongoose.connection.once('open',()=>{ console.log('MongoDB connected successfully') resolve() }) }) }To be continued …
