mongoose模块1-金猪脚本(原飞猪脚本)

这中情况module是固定死的,如果要动态创建参考mongoose模块2

安装mongose(前提已经安装mongodb并且启动)

npm install mongoose -s

db.js(导出mongoose模块)

//导包
var mongoose = require('mongoose')
//连接数据库connect
//参数(地址,配置对象,回调)
mongoose.connect('mongodb://localhost/test', {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useCreateIndex: true
}, function (err) {
    if (err) {
        console.log("连接数据库失败:" + err)
    } else {
        console.log("连接数据库成功")
    }
})
module.exports = mongoose

module.js(导出module,通过module增删改查)

//导入mongoose对象
const mongoose = require('./db.js');
//创建约束对象Schema(定义结构),每个Schema对应一个collection(集合)
let userSchema = new mongoose.Schema({
    userName: {
        type: String,    //数据类型
        required: true,  //是否必传
        unique: true     //是否唯一
    },
    userPass: {
        type: String,
        required: true//,  //是否必传
        //default: "123456"
    },
    userDeviceNum: {
        type: Number,
        required: true//,  //是否必传
        //default: "123456"
    }//,
    // createAT: {
    //     type: Date,
    //     index: { expires: 60 }//自动过期删除,分钟
    // }
})
//创建模型对象
//参数(集合对象,约束对象)
let userModule = mongoose.model('userModule', userSchema)

module.exports = userModule;

initDB.js

//导入模型对象
let dbModule = require('./userModule')
//加密密码用
let crypto = require('crypto')

function DBadd(userName, userPass) {
    dbModule.create({
        userName: userName,
        userPass: crypto.createHash('md5').update(userPass).digest('hex'),
        userDeviceNum: 10000
    }, function (err, doc) {
        if (err) {
            console.log("错误" + err)
        } else {
            console.log("添加成功" + doc);
        }
    })
    updataModule.create({
        projectName: "baoHu"
    }, function (err, doc) {
        if (err) {
            console.log("错误" + err)
        } else {
            console.log("添加成功" + doc);
        }
    })
}
//初始化管理员账户密码
module.exports = DBadd("root", "123456")

Schema相关

  • Schema数据类型:String Number Date Buffer Boolean Mixed Objectid Array
  • Schema常用字段:
    type: String, //数据类型
    required: true, //是否必传
    unique: true //是否唯一
    default: "未知" //默认值
    lowercase: true, //将值转化为小写
    uppercase: true, //转化为大写
    index:true, //设定索引值
    sparse:true, //是否启用稀疏索引
    match:RegExp, //判断是否通过正则验证
    enum:Array, //判断test值是否包含于enmu对应的数组中
    min:Number, //判断对应值是否大于等于给定值
    max:Number, //判断对应值是否小于等于给定值
    trim:true //去除数据前后的空格
    capped:1024 //限定大小最大为1024字节
    validate:function,为此属性添加一个验证器函数,如demo1所示
    get:function,//为这个属性定义一个定制的getter Object.defineProperty()。如demo2所示
    set:function,//定义此属性的自定义设置Object.defineProperty()。如demo2所示
    如果type是Date 可以设置index:{expires:60}//过期时间

你可能感兴趣的:(mongoose模块1-金猪脚本(原飞猪脚本))