Node 实现增删改查
首先 app.js 中
app.use(koaBody({
strict:false
})); 为了可以删除任意一个id
// 引入类 const Koa = require('koa'); const Router = require('koa-router'); const koaBody= require('koa-body') const tagRouter=require("./routers/tag.router"); const userRouter=require("./routers/user.router"); const contentRouter=require("./routers/content.router"); // 引入内部方法或属性 // coust{方法或属性名} =require('koa'); // 创建对象 const app = new Koa(); app.use(koaBody({ strict:false })); const router=new Router(); //创建路由,支持传递参数 tagRouter(router); userRouter(router); contentRouter(router); app.use(router.routes()); app.use(router.allowedMethods({ // throw: true, // 抛出错误,代替设置响应头状态 // notImplemented: () => '不支持当前请求所需要的功能', // methodNotAllowed: () => '不支持的请求方式' })); // localhost:3000 app.listen(3000,()=>{ console.log("http://localhost:3000") });
然后 mongodb.js
const mongoose=require("mongoose"); //导入
mongoose.connect("mongodb://127.0.0.1:27017/test")
const tagSchema= new mongoose.Schema({ //创建一个模型 对数据进行约束
// text: String,
text:{
type:String,
minlength:2,
maxlength:12
}
})
const contentSchema= new mongoose.Schema({ //创建一个模型 对数据进行约束
title:{
type:String,
minlength:6,
maxlength:12
},
content:{
type:String,
minlength:10,
maxlength:50
},
top:{
type:Boolean
}
})
const userSchema= new mongoose.Schema({ //创建一个模型 对数据进行约束
user:{
type:String,
minlength:2,
maxlength:12
},
mima:{
type:Number,
minlength:10,
maxlength:50
},
Email:{
type:String
},
grops:{
type:String
}
})
const tagModel=new mongoose.model("tag",tagSchema); //生成model,实现增删改查
const contentModel=new mongoose.model("content",contentSchema);
const userModel=new mongoose.model("user",userSchema);
// tagModel.
module.exports= {tagModel,contentModel,userModel}
然后 tag.router.js ,content.router.js user.router.js
// 添加 删除 const {tagModel}=require("../mongodb"); //引入 const {success,fail}=require("../toast") module.exports=function (router){ //导出 //查询 router.get("/tag",async (ctx)=>{ try{ const data= await tagModel.find({}); return success(ctx,data); }catch(error){ return fail(ctx,error) } }) //添加 router.post("/tag",async ctx=>{ try{ const data= await tagModel.create(ctx.request.body); return success(ctx,data); }catch(error){ return fail(ctx,error) } }) //删除 router.delete("/tag",async ctx=>{ try{ const data= await tagModel.deleteOne(ctx.request.body); return success(ctx,data); }catch(error){ return fail(ctx,error) } }) }
再 toast.js 中 success,fail 与 tag.router.js 中 {success,fail} 相对应
module.exports={ success:function(ctx,data=null){ ctx.body={ status:200, data:data, msg:"" } }, fail:function(ctx,msg){ ctx.body={ status:200, data:null, msg:msg.message||msg } } }
再 test.http ,用Send Request 查看结果
###查询 GET http://localhost:3000/tag ###添加 POST http://localhost:3000/tag Content-Type: application/json { "text":"HTml" } ###删除 DELETE http://localhost:3000/tag HTTP/1.1 Content-Type: application/json { "_id": "61a5c8b9b793e9ed045e57c2" }
content.router.js user.router.js 同理