基本模块化
一、创建 config.js 文件
// 配置文件
module.exports = {
DBHOST: '127.0.0.1', //ip
DBPORT: 27017, //端口号
DBNAME: 'mydata', //数据库名
}
二、创建 db.js 文件
// success 数据库连接成功的回调
// error 数据库连接失败的回调
module.exports = function (success, error) {
// 判断 error 为其设置默认值
if (typeof error !== 'function') {
error = () => {
console.log('连接失败...')
}
}
// 1、安装 mongoose
// 2、导入 mongoose
const mongoose = require('mongoose')
// 导入配置文件
const { DBHOST, DBPORT, DBNAME } = require('../config/config')
// 如果连接成功后出现 strictQuery 的警告,设置 strictQuery 为 true 即可,均无任何影响。
mongoose.set('strictQuery', true);
// 3、连接 mongodb 服务 数据库的名称
mongoose.connect(`mongodb://${DBHOST}:${DBPORT}/${DBNAME}`);
// 4、设置回调
// 设置连接成功的回调 官方推荐 once 事件回调函数只执行一次,on会自动重连。
mongoose.connection.once('open', () => {
success();
});
// 设置连接错误的回调
mongoose.connection.on('error', () => {
error();
});
// 关闭数据库连接 (项目运行过程中,不会添加该代码)
mongoose.connection.on('close', () => {
console.log('连接关闭');
});
}
三、创建文档的结构对象文件
// 导入 mongoose
const mongoose = require('mongoose');
// 创建文档的结构对象
// 设置集合中文档的属性以及属性值的类型
let BookSchema = new mongoose.Schema({
name: String,
author: String,
price: Number
})
// 创建模型对象 对文档操作的封装对象 mongoose 会使用集合名称的复数,创建集合(如:book将成为books)
let BookModel = mongoose.model('book', BookSchema);
// 暴露模型对象
module.exports = BookModel;
四、创建 index.js 使用
// 导入 db 文件
const db = require('./db/db');
// 导入 mongoose
const mongoose = require('mongoose');
// 导入 BookModel
const BookModel = require('./models/BookModel')
// 调用函数
db(() => {
// 7、新增
BookModel.create({
name: '模块化',
author: '李白',
price: 9.9
}, (err, data) => { //此处如果 mongoose 7版本,则用 then.(),但无法执行 mongoose.disconnect()方法,原因未解决;
if (err) {
console.log(err);
console.log('插入失败...');
return;
}
// 输出插入后的文档对象
console.log(data)
console.log('插入成功...');
})
})
完成!
如新增需求,则:
一、创建电影的结构对象文件
二、使用