【Express】express-mongoos连接线上MongoDB
1、安装mongoos
npm i mongoos
默认安装的是mongoos v7版本的
2、创建model目录模块
在根目录下创建model目录
然后创建/model/config.js文件
//配置文件 //线上mongdb数据库 module.exports = { HOST:'255.255.255.255',//你的数据库所在的服务器公网地址 PORT: 27017,//端口 NAME: 'express_api',//数据库名称 USER: 'cwk',//用户名 PASSWORD: '123456',//密码 }
在/model/db.js文件中
const mongoose = require("mongoose") const {HOST,PORT,NAME,USER,PASSWORD} = require('./config') mongoose.set('strictQuery', true); //连接mongodb服务 数据库名称 mongoose.connect(`mongodb://${USER}:${PASSWORD}@${HOST}:${PORT}/${NAME}`); //设置回调 //连接成功的回调 // mongoose.connection.on('open',()=>{ // console.log('sucess') // }); //事件回调函数只执行一次 mongoose.connection.once('open',()=>{ console.log('数据库连接成功!') }); //设置连接错误的回调 mongoose.connection.on('error',()=>{ console.log('数据库连接失败!') }); //设置连接关闭 mongoose.connection.on('close',()=>{ console.log('close') }); module.exports = mongoose
在/model/mall_back.js业务数据表
//后台管理数据表 const mongoose = require('./db') const Schema = mongoose.Schema //测试表 const testSchema = new Schema({ title:String }) //权限表 const powerSchema = new Schema({ title:String, status:{ type:Boolean, default:true } }) //角色表 const roleSchema = new Schema({ title:String, power:{ type:[Schema.Types.ObjectId], ref:"power" }, status:{ type:Boolean, default:true } }) //管理员表 const adminSchema = new Schema({ phone:{ type:String }, code:String, username:{ type:String, require:true, minlength:2 }, password:{ type:String, require:true, }, email:String, avatar:{ type:String, default:"https://atxc-books-1314112556.cos.ap-beijing.myqcloud.com/avatar_default.jpg" }, create_time:{ type:Date, default:Date.now() }, status:{ type:Boolean, default:true }, last_login:{ type:Date, default:Date.now() }, role:{ type:Schema.Types.ObjectId, ref:'role' } }) const testModel = mongoose.model("test",testSchema,"test") const powerModel = mongoose.model("power",powerSchema,"power") const roleModel = mongoose.model("role",roleSchema,"role") const adminModel = mongoose.model("admin",adminSchema,"admin") // adminModel.create({ // phone:"13400405244", // code:'0000', // username:"admin", // password:"admin", // email:"13400405244@163.com", // role:"64b7581f1794a8eaf8368813", // }) // roleModel.create({ // title:"一级管理员", // power:[ // "64b75771486f639082b79588", // ] // }) module.exports = { powerModel, roleModel, adminModel, testModel, }
3、使用
在路由视图中引入数据模型,然后直接使用
const { powerModel, roleModel, adminModel,testModel } = require("../model/mall_back") ...