管理系統(curd api接口 & 分頁查詢api接口)


管理系統需求分析:

 

注冊登錄頁面:有的管理平台需要注冊,有的直接分配權限就能進入。

內頁功能👇:

 

 

 

增加

查詢分類

關鍵字查詢

分頁查詢

刪除

修改


 

H-ui:架起設計與后端的橋梁,輕量級前端框架

 

回憶: 開啟靜態目錄,靜態資源路徑

 


 

 

 db/model/foodModel.js

const mongoose=require('mongoose')
var foodSchema = new mongoose.Schema({
  name  : {type:String,required:true},
  price : {type:String,required:true},
  desc : {type:String,required:true},
  typename:{type:String,required:true},
  typeid:{type:Number,required:true},
  img:{type:String,required:true}
});

// 將schema 對象轉化為數據模型
var Food = mongoose.model('foods', foodSchema);//該數據對象和集合關聯('集合名',schema對象)

module.exports=Food
// a*10000+b*10000 4

 

router/foodRouter.js

 

const express=require('express')
const router= express.Router()
const foodModel=require('../db/model/foodModel')

 

/**
 * @api {post} /food/add  添加菜品
 * @apiName addfood
 * @apiGroup Food
 *
 * @apiParam {String} name  菜品名稱.
 * @apiParam {String} price 價格.
 * @apiParam {String} desc 描述.
 * @apiParam {String} typename  類型.
 * @apiParam {String} typeid  類型ID.
 * @apiParam {String} img  圖片.
 * @apiSuccess {String} firstname Firstname of the User.
 * @apiSuccess {String} lastname  Lastname of the User.
 */
router.post('/add',(req,res)=>{
  // let data={
  //   name  : '火山飄雪',
  //   price : '9999',
  //   desc : '超好吃',
  //   typename:'涼菜',
  //   typeid:1,
  //   img:'/public/image/img3.jpg'
  // }
  let  {name, price,desc,typename,typeid,img} = req.body
  // 判斷參數是否正確
  foodModel.insertMany({name, price,desc,typename,typeid,img})
  .then((data)=>{
    res.send({err:0,msg:'添加成功'})
  })
  .catch(()=>{
    res.send({err:-1,msg:'添加失敗'})
  })
}) 

 

/**
 * @api {post} /food/getInfoByType 分類查詢
 * @apiName getInfoByType
 * @apiGroup Food
 *
 * @apiParam {Number} typeid  用戶名.

 * @apiSuccess {String} firstname Firstname of the User.
 * @apiSuccess {String} lastname  Lastname of the User.
 */
router.post('/getInfoByType',(req,res)=>{
  let {typeid}=req.body
  foodModel.find({typeid})
  .then((data)=>{
    res.send({err:0,msg:'查詢ok',list:data})
  })
  .catch(()=>{
    res.send({err:-1,msg:'查詢失敗'})
  })
})

 

/**
 * @api {post} /food/getInfoByKw 關鍵字查詢
  * @apiName getInfoByKw
 * @apiGroup Food
 *
 * @apiParam {Number} kw  關鍵字.

 * @apiSuccess {String} firstname Firstname of the User.
 * @apiSuccess {String} lastname  Lastname of the User.
 */

 router.post('/getInfoByKw',(req,res)=>{
//  $set  $gte   $or $and  $regex   regexp  帶$都是內置的
let {kw}=req.body
let reg=new RegExp(kw) // 創建一個正則表達式 匹配關鍵字
// foodModel.find({age:{$gte:16}})
// foodModel.find({name:{$regex:reg}}) 名字模糊
console.log(kw)
foodModel.find({$or:[{name:{$regex:reg}},{desc:{$regex:reg}}]}) // 名字 以及描述
.then((data)=>{
  res.send({err:0,msg:'查詢ok',list:data})
})
.catch(()=>{
  res.send({err:-1,msg:'查詢失敗'})
})

 })

 

 

router.post('/del',(req,res)=>{
  let {_id}=req.body
  //單個刪除  多個刪除(id傳數組)
  foodModel.remove({_id:id})
  .then((data)=>{
    res.send({err:0,msg:'del ok'})
  })
  .catch(()=>{
    res.send({err:-1,msg:'刪除失敗'})
  })
}) 

 

router.post('/update',(req,res)=>{
//修改,編輯
  let  {name, price,desc,typename,typeid,img,_id} = req.body
  console.log(req.body)
  console.log({name, price,desc,typename,typeid,img,_id} )
  foodModel.updateOne({_id},{name, price,desc,typename,typeid,img})

  .then((data)=>{
    res.send({err:0,msg:'修改 ok'})
  })
  .catch(()=>{
    res.send({err:-1,msg:'修改失敗'})
  })

})

 

 

/**
 * @api {post} /food/getInfoByPage 分頁查詢
  * @apiName getInfoByPage
 * @apiGroup Food
 *
 * @apiParam {Number} pageSize  每頁數據條數.
* @apiParam {Number}  page  那一頁.
 * @apiSuccess {String} firstname Firstname of the User.
 * @apiSuccess {String} lastname  Lastname of the User.
 */

 router.post('/getInfoByPage',(req,res)=>{
  let pageSize=req.body.pageSize || 2 //設置默認值
  let page =req.body.page || 1
  foodModel.find().limit(Number(pageSize)).skip(Number((page-1)*pageSize))
  .then((data)=>{
    res.send({err:0,msg:'查詢ok',list:data})
  })
  .catch(()=>{
    res.send({err:-1,msg:'查詢失敗'})
  })

 })

 

 

module.exports=router

 

server.js

 

const express=require('express')
const db=require('./db/connect')
const path=require('path')
const app=express()
const Mail=require('./utils/mail')
console.log(Mail)
const bodypaser=require('body-parser')
app.use(bodypaser.urlencoded({ extended: false }))
app.use(bodypaser.json())

app.use('/public',express.static(path.join(__dirname,'./hehe')))
// 路由
const userRouter = require('./router/userRouter')
const fooodRouter= require('./router/foodRouter')
app.use('/user',userRouter)
app.use('/food',fooodRouter)



app.listen(3000,()=>{
  console.log('server start')
})

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM