mongoose

194 阅读2分钟

下载mongoose模块

  • npm install mongoose --save

cmd 开启mondb

  1. mongo 开启mongoDB
  2. mongod 连接mongoDB
  3. nodejs 通过mongoose连接mongodb
  4. 船舰Schema对象 并转换成 增删改查API
 Model.update(condition,doc,[options],[callback]);
                参数condition:更新的条件,要求是一个对象。
                参数doc:要更新的内容,要求是一个对象。
                参数[options]:可选参数,要求也是一个对象。
                参数[callback]:可选参数,要求是一个回调函数。 Model.updateMany()
Model.updateOne()
foodModel.insertOne()
Model.find()
Model.remove()
Model.updateOne()
Model.updateMany()

分页公式 limit(number)读取指定数量的数据 skip(number)跳过数据的条数 分页公式 : find().limit(page).skip((page-1)*pageSize);

 eg: page  ("那一夜" )  pageSize("每页显示的数据条数")
 let pageSize=req.body.pageSize || 2 ;
 let page=req.body.page||1 ;
 db.col.find().limit(page).skip((page-1)*pageSize);

mongoDB中的setset gte oror and方法

 mongodb 语法
        $set 字段更新操作符 { $set: { "details.make": "zzz" } }
        (>) 大于 - $gt
        (<) 小于 - $lt
        (>=) 大于等于 - $gte
        (<= ) 小于等于 - $lte
        eg: db.col.find({likes : {$gt : 100}})
        $or 
        db.getCollection('testOrAnd').  find( {  $or:[{"value":{$gte:300}}] })
        $and 
        db.getCollection('testOrAnd').find({$or:[{$and:[{"state1":11},{"state2":22}]},{"value":{$gte:300}}]})
                 

连接数据库并创建Schema对象 增删改查

//1引入mongoose模块
const mongoose = require('mongoose');
//2连接数据库
mongoose.connect('mongodb://localhost/admin', {useNewUrlParser: true, useUnifiedTopology: true});

//3数据库连接对象
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  // we're connected!
  console.log('连接成功')
});

// //4创建一个和集合相关的Schema对象
// const userSchema = new mongoose.Schema({
//     us:{type:String,required:true},
//     ps:{type:String,required:true},
//     age:Number,
//     sex:{type:Number,default:0}
// });

// //5将Schema对象转换成数据模型
// const User=mongoose.model('User',userSchema);//该数据对象和集合关联('集合名',Schema对象)

//插入数据
// User.insertMany({us:'wangyi',ps:"123",age:16})
// //返回一个promise对象`
// .then((data)=>{
// console.log(data)
// console.log('插入成功')
// })
// .catch(()=>{
//     console.log('插入失败')
// })


//删除
// User.remove({})
// //返回一个promise对象`
// .then((data)=>{
// console.log(data)
// console.log('删除成功')
// })
// .catch(()=>{
//     console.log('删除失败')
// })


//查询数据
// User.find({})
// //返回一个promise对象`
// .then((data)=>{
// console.log(data)
// console.log('查询成功')
// })
// .catch(()=>{
//     console.log('查询失败')
// })

nodemailer 邮箱验证码 必须开启POP3/SMTP/IMAP npm install nodemailer

const nodemailer=require('nodemailer');

//创建发送邮箱的对象
let transporter=nodemailer.createTransport({
    host:'smtp.163.com',//发送方邮箱qq 通过lib/well-know/service.json
    port:465,//端口号
    secure:true,//true for 456,false for othersports
    auth:{
        user:'wosiliziyi6@163.com',//发送方邮箱
        pass:'CXHOUMREVWRLKRAP'//smtp验证码
    }
})



function send(mail,code){
    // 邮件信息
    let  mailobj={
      from: '"今天天气不错" <wosiliziyi6@163.com>', // sender address
      to: mail, // list of receivers
      subject: "1902", // Subject line
      text: `您的验证码是${code},有效期五分钟`, // plain text body
      //html: "<b>Hello world?</b>" // html body
    }
    return new Promise((resolve,reject)=>{
      transporter.sendMail(mailobj,(err,data)=>{
         console.log(err)
         console.log(data)
          if(err){
            reject()
          }else{
            resolve()
          }
      });
    })
    
}
module.exports={send}

api文档生成

npm install apidoc -g

创建一个apidoc.json

{
  "name": "example",
  "version": "0.1.0",
  "description": "apiDoc basic example",
  "title": "Custom apiDoc browser title",
  "url" : "http://localhost:3000"
}

运行 -i 输入目录 -o 输出目录

apidoc -i myapp/ -o apidoc/ -t mytemplate/