数据库的初始化操作
- 连接的数据库的名称
- 包含连接数据库
- 初始化所有的Schemas
- 暴露给其他页面使用的接口
- 假设写在 database/init.js 中
const mongoose = require('mongoose');
// 连接的数据库的名称是 lzhhc-vue
const db = 'mongodb://localhost/lzhhc-vue'
const glob = require('glob');
const { resolve } = require('path');
// 暴露,初始化所有集合规则的接口
exports.initSchemas = () => {
glob.sync(resolve(__dirname, './schema', '**/*.js')).forEach(require);
}
// 暴露连接的名称
exports.connect = () => {
// 连接数据库
mongoose.connect(db);
// 最大连接次数...
let maxConnectTimes = 0;
return new Promise((resolve, reject) => {
// 增加数据库监听事件
mongoose.connection.on('disconnected', (err) => {
if (maxConnectTimes <= 3) {
maxConnectTimes++;
mongoose.connect(db);
console.log(`正在第${maxConne