mongoose 模块化

基本模块化

一、创建 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('插入成功...');
    })
})

完成!

如新增需求,则:

一、创建电影的结构对象文件
在这里插入图片描述

二、使用
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值