demo1
const router = require("koa-router")();
const MovieModel = require("../../models/movie");
router.get("/api/movie",async ctx=>{
// ms是get传值传入的需要查询的集合名
let {m} = ctx.query;
try{
//封装好的数据模型函数,参数是集合名
var data = await MovieModel(m).find().sort({rating:-1});
if(data.length){
ctx.body = {
code:200,
res:data,
request:"GET /api/top250"
}
}else{
// 当m传入了值,但是值不是数据库里有的集合名字,就抛出异常,转跳到catch
throw new Error("输入的字段不合法!mmm")//实际这里是不输出的
}
}catch{
ctx.body = {
code:400,
msg:"输入的字段不合法!"
}
}
})
module.exports = router;
demo2
router.post("/api/movieCollect/:m",async ctx=>{
console.log(ctx.request.body);
let {m} = ctx.request.params;//要更改的集合
console.log('m:', m);
let {id,collected} = ctx.request.body;//要更改的集合的某个值
console.log('id:',id);
try{
// 这里m,id,coolected传入不存在的合集名字时,会继续向下运行,但是data值为空。
//而m,id,coolected值不存在或者格式错误就会走catch;
var data = await MovieModel(m).findByIdAndUpdate({_id:id},{$set:{collected}});
console.log(data);
if(data){
ctx.body = {
code:200,
result:data,
msg:"请求成功!"
}
}else{
ctx.body = {
code:400,
msg:"请求的合集不存在"
}
}
}catch(err){
ctx.body = {
code:400,
msg:"参数不合法!"
}
}
})