簡單作了一個代辦事項列表系統 ,增刪改查。 前臺頁面用 jquery 後臺用nodejs ,數據庫用的是mongdoDB 。

引入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}`);
})
相關文章
相關標籤/搜索