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    同理