我如何不将参数 id 发布(保存)到数据库中已存在的数据库

时间:2021-06-06 18:51:18

标签: node.js mongodb express mongoose

我正在使用 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,
  });
});

0 个答案:

没有答案