简单做了一个代办事项列表系统 ,增删改查。 前台页面用 jquery 后台用nodejs ,数据库用的是mongdoDB 。

  • 2021 年 1 月 10 日
  • 筆記
引入npm 第三方mongoose包连接mongoDb本地数据库todolist
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/todolist',{
    useNewUrlParser: true ,
    useUnifiedTopology: true 
});
//导出数据库连接文件
module.exports=mongoose;

//导入连接数据库文件
const mongoose=require('./connect')
const Schema = mongoose.Schema;
这里直接用mongoose schema 建模 
const  userSchema=new Schema({
   name:{type:String},
   password:{type:String}
})

const todoContentSchema=new Schema({
     data:{type:String},
     isV:{type:Number,default:1} ,
     com:{type:String,default:1},
     th:{type:String,default:0}
         
})

//实例化模型
const todoContent = mongoose.model('todoContent', todoContentSchema);
const User = mongoose.model('User', userSchema);
//  const login= mongoose.model('login', userShema);
// const Cat = mongoose.model('Cat', catSchema);
module.exports={
  User,todoContent
}



//后台代码  用node js express 框架 
const express=require('express')
 const bodyParse=require('body-parser')
//这里用cors第三方包做了跨域处理
 const cors=require('cors')
//导入连接数据库的文件
const { User,todoContent}=require('./model/index')
//导入token 文件
const {verifyToken,createToken}=require('./token')

const app=express()
app.use(express.json())
app.use(cors())
// app.use(express.urlencoded({extended:false}))
// var urlencodedParser = bodyParse.urlencoded({ extended: false })
const PORT=8220
//注册用户接口
app.post("/regist",(req,res)=>{
    //console.log(req.body);
    const UserDate = req.body;
   const  name=req.body.name; 
  const  password=req.body.password;
   const user=new User(UserDate)
   user.save().then((data)=>{
      console.log(data);
      res.send({
          status:200,
          msg:"添加数据成功",
          data:{
              name,
              password
          }
      })
   })
})

//登录用户接口
app.post('/login',(req,res)=>{
  const {name,password}=req.body;
  User.findOne({name}).then((UserDate)=>{
      //  console.log(UserDate);
      if(password===UserDate.password){
          const token=createToken(UserDate)      
       res.send({
           status:300,
           msg:"登录成功",
           data:{
               name,
               password,
               token
            }
        })        
    }else{
        res.send({
            status:303,
            msg:"用户名或者密码错误"
            
        })
    }
  })
  
})
//添加数据接口
app.post('/todo',(req,res)=>{
    const data=req.body;
   console.log(data);
//    res.send(data)
  const todolist=new todoContent(data)
  todolist.save().then((data)=>{       
     res.send({
         status:203,
         msg:"添加数据成功",
         data:{
             data
         }
     })
  })
})
//修改数据接口
app.patch("/todo/:id", (req, res) => {
    console.log(req.params.id);
    console.log(req.body);
    todoContent.updateOne({ _id: req.params.id }, req.body).then((updata) => {
      todoContent.find({ _id: req.params.id }).then((data) => {
        res.send({
          status: 400,
          msg: "更新成功",
          data
        });
      });
    });
  })
//删除数据接口
app.delete("/todo/:id", (req, res) => {
    const id = req.params.id;
    todoContent.updateOne({ _id: id }, { com: 0 }).then((data) => {
      res.send({
        status: 500,
        msg: "删除成功",
        data,
      });
    });
  });
//拿到当前用户名
app.get("/todo",vv,(req,res)=>{
  //return res.send(req.body.usertoken)
  const id = req.params.id; 
  const data=req.body.usertoken.data
  console.log(data);
  console.log(id)
    res.send({
       status:410,
       msg:"获取用户名成功",
       data:{
         user: req.body.usertoken.data
       }       
    })
   })
//拿到所有代办事项数据
app.get("/data",(req,res)=>{
  todoContent.find({com:"1"}).then((data)=>{
    res.send({
      status:306,
      msg:"获取数据成功",
      data:{
        data
      }
    })
  })



})
//完成数据

app.put('/data/:id',(req,res)=>{
  const id = req.params.id;
  todoContent.updateOne({_id:id}, {$set:{th:1}} ).then((data)=>{
    res.send({
      status:400,
      msg:"更新成功"
    })

  } )


})




//手写中间件验证token
function vv(req, res, next) {
    const token = req.headers.authorization.split(" ")[1];
     const usertoken = verifyToken(token);
   //  console.log(usertoken);
    if(!usertoken){
      res.sendStatus(401)
    }else{
      req.body.usertoken=usertoken;
      next()
    }
}

app.listen(PORT,()=>{
      console.log(`服务运行在${PORT}`);
})