我正在使用 express(mongoose) 处理一个购物车,它接受来自 params 的 id,该 params 是服务架构和用户 id。我可以在购物车模型中发布服务和用户。我的问题是,如果购物车模型已经拥有该服务(req.params.id),我该如何不发布该服务。如果数据库中已经有带有 id 的服务,那么只需返回购物车中已经存在的服务。
在数据库中:
_id:ObjectId(60bd12d694c98f478094fc9c)
user:ObjectId(60ae3106b459094f38c6969b)
service:ObjectId(60a371587f104a3234e13dbf)
_id:ObjectId(60bd130f9a1a334230ef62fa)
user:ObjectId(60ae3106b459094f38c6969b)
service:ObjectId(60a371587f104a3234e13dbf)
在 CartController 中:
const postInCart = catchAsyncErrors(async (req, res, next) => {
req.body.user = req.user._id; //contains user object from database
const id = req.params.id;
const cart = new cartModel(req.body);
const user = await userModel.findById(req.body.user);
const service = await serviceModel.findById(id);
if (!service) {
return next(new ErrorHandler("Service Not Found!!", 404));
}
cart.user = user;
cart.service = service;
await cart.save();
return res.status(200).json({
sucess: true,
cart,
});
});