下载mongoose模块
- npm install mongoose --save
cmd 开启mondb
- mongo 开启mongoDB
- mongod 连接mongoDB
- nodejs 通过mongoose连接mongodb
- 船舰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中的gte 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/