模糊查询-带分页
async function getStusByPage(req, res, next) {
let {pageindex=1,pagesize=3,key}=req.query;
//模糊搜索
let reg=new RegExp(key); //相当于 {$regex:/关键词/}
//获取分页数组
let stus = await stusModel.find({name:reg}).skip((pageindex-1)*pagesize).limit(pagesize)
//获取总条数
let count=await stusModel.find({name:reg}).count();
//计算总页数
let pagecount= Math.ceil(count/pagesize)
res.send({
code: 200,
page:{
stus,
pageindex:pageindex-0,
pagecount:pagecount-0,
count:count-0
}
})
}
关联查询
为了解决冗余问题,我们会建立两张表,但是有弊端,前端查询需要先查询学生,再查询班级,很不方便,因此,我们得使用mongoose提供的关联查询来解决:前端以后也只需要发送一次请求即可–当查询学生时,mongoose能够自动关联查询班级
stu
_id sname age clas_id
班级编号
clas
_id cname rules address
班级编号
配置
clasModel.js
//获得model对象
let mongoose=require('mongoose');
let Schema=mongoose.Schema;
let clasSchema=new Schema({
cname:String,
rules:String,
address:String
},{versionKey:false})
let clasModel=mongoose.model("clasModel",clasSchema,"clas")
//暴露
module.exports=clasModel
stusModel.js
let mongoose=require('mongoose');
let Schema=mongoose.Schema;
let stusSchema=new Schema({
name:String,
age:Number,
gender:Number,
hobby:Array,
head:String,
//关联查询班级对象
clas_id:{
type:Schema.Types.String,
ref:"clasModel"//对应班级Model中的关联名字
}
},{versionKey:false})
let stusModel=mongoose.model("stusModel",stusSchema,"stus")
module.exports=stusModel
stusController.js
//populate("学生表中的关联字段")
let stus = await stusModel.find({name:reg}).skip((pageindex-1)*pagesize).limit(pagesize).populate("clas_id")
复习iframe
left.html:
<a href="./right1.html" target="xx">r1</a>
<br>
<a href="./right2.html" target="xx">r2</a>
<br>
<a href="./right3.html" target="xx2">r3</a>
main.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="head">
<iframe name="xx2" src="./head.html" frameborder="0" scrolling="no" width="100%" height="100px"></iframe>
</div>
<div id="main" style="display: flex;">
<div id="left">
<iframe src="./left.html" frameborder="0" scrolling="no" width="20%"></iframe>
</div>
<div id="right" style="margin-left:-200px;width: 600px;">
<iframe src="./right1.html" name="xx" frameborder="0" scrolling="no" width="100%"></iframe>
</div>
</div>
</body>
</html>
跳出iframe
方式1:标签
<a href="./login.html" target="_parent">注销2</a>
方式2:js
parent.location.href="./login.html"