0%

717_mongodb_代码模块化

index.js

const db = require("./db/db");
const BookModel = require("./models/BookModel");
//调用函数
db(
  () => {
    //个性化读取
    //只读取name和author
    BookModel.find()
      .select({ name: 1, author: 1 })
      .exec((err, data) => {
        if (err) {
          console.log("失败");
          console.log(err);
        }
        console.log(data);
      });
    console.log("连接成功");
  },
  () => {
    console.log("连接失败");
  }
);

db.js

/**
 *
 * @param {*} success 数据库连接成功的回调
 * @param {*} error 数据库连接失败的回调
 */

module.exports = function (success, error) {
  const mongoose = require("mongoose");

  //设置 strictQuery 为 true
  mongoose.set("strictQuery", true);

  //3. 连接 mongodb 服务                        数据库的名称
  mongoose.connect("mongodb://127.0.0.1:27017/bilibili");

  mongoose.connection.once("open", () => {
    success();
  });
  // 设置连接错误的回调
  mongoose.connection.on("error", () => {
    error();
  });

  //设置连接关闭的回调
  mongoose.connection.on("close", () => {
    console.log("连接关闭");
  });
};

BookModel.js

const mongoose = require("mongoose");

let BookSchema = new mongoose.Schema({
  name: String,
  author: String,
  price: Number,
  is_hot: Boolean,
});

//6. 创建模型对象  对文档操作的封装对象    mongoose 会使用集合名称的复数, 创建集合
let BookModel = mongoose.model("novel", BookSchema);

module.exports = BookModel;