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:"参数不合法!" } }})