【附后端代码】使用 express + mongoose 实现添加产品和获取产品列表(分页查询)

  • Post author:
  • Post category:其他


【创建Schema模型】:

/**
 * product模型对象
 */

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
 // 创建Schema对象
var productSchema = new Schema({
    name:{    // 产品名称 string
        type:String,
        unique:true
    },   
    desc:{   // 产品描述 string
        type:String
    },   
    price:  {    // 产品价格 number
        type:Number
    },   
    status: {   // 产品状态   0 下架   1在售
        type:Number
    }    
})
var ProductModel = mongoose.model('product',productSchema);
module.exports = ProductModel;

【添加产品】:

/**
 * 添加product
 */
router.post('/api/product/addProduct.do',async (req,res)=>{
  ProductModel.create({
    name:req.body.name,   // 产品名称 string
    desc:req.body.desc,   // 产品描述 string
    price:req.body.price,   // 产品价格 number
    x: req.body.status    // 产品状态   0 下架   1在售
  },(err)=>{
    if(!err){
      res.json({
        msg:'产品添加成功',
        success:true
      })
    }else{
      res.json({
        msg:'产品添加失败',
        success:false
      })
    }
  })
})

【按照分页获取产品列表】:

分页条件查询:  await ProductModel.find({}).skip().limit()

/**
 * 获取product的列表,需要分页的奥
 */
router.post('/api/product/getProductsList.do',async (req,res)=>{
  const pageNum = Number(req.body.pageNum);   // 第几页的数据
  const pageSize = Number(req.body.pageSize);   // 一页显示几条数据
  const total = await ProductModel.find({}).countDocuments();
  const list = await ProductModel.find({}).skip((pageNum-1)*pageSize).limit(pageSize)
  const pages = Math.ceil(total / pageSize)
  if(list){
    res.json({
      data:{list,total,pageNum,pageSize,pages},
      success:true
    })
  }
})

最后:

用postman 工具测试下,看接口是否通过奥。

—–完。



版权声明:本文为Miss_liangrm原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。