将列表里的商品加入购物车页面
第一步:新建一个骨架和数据模型
const aschema = new mongoose.Schema({ img: String, name: String, price: Number, num: Number,good_id:String,kind:String })
const listModel = mongoose.model("list", aschema);
第二步:添加数据的接口
app.post("/cart", function (req, res) {
let obj = req.body;
let { img, name, price, _id, kind } = obj;
let good_id = _id;//声明一个新的id,使其等于旧的id,方便在添加时进行判断
listModel.findOne({ "good_id": _id }, function (err, data) {
if (data) {//如果存在当前数据
var num = data.num + 1;//则使该商品的数量+1
listModel.updateOne({ "good_id": _id }, { $set: { "num": num } }, function (err) {
res.send({ "err": "err" });
});//修改数量
} else {//若该数据不存在
var num = 1;//则使数量为1
listModel.create({ img, name, price, num, good_id, kind }, function (err) {
res.send({ "err": "err" });
});//并创建一个mongodb文档
}
});
});
第三步:渲染页面的接口
app.get("/findlist", function (req, res) {
listModel.find({}, {}, function (err, data) {
res.send({ "err": "err", "info": data })
});
});
第四步:修改数量的接口
app.get("/upnum", function (req, res) {
var id = req.query._id;
var flag = req.query.flag;
listModel.updateOne({ "_id": id }, { $inc: { num: flag == "jia" ? 1 : -1 } }, function (err) {
res.send({ "err": "err" });
});
});
前端
第五步:删除数据的接口(数量为0时删除数据)
app.get("/delcart", function (req, res) {
var id = req.query._id;
listModel.deleteOne({ "_id": id }, function (err) {
res.send({ "err": "err" });
})
})