为什么我的 router.delete() 在 express.js 中不起作用?

我正在尝试运行一个删除请求,但它不起作用,我在另一个项目上使用了完全相同的逻辑,并且它在那里工作。

这是包含删除请求和确实有效的发布请求的路由文件

const express = require("express");
const router = express.Router();
const User = require("../models/users");
const cardSchema = require("../models/card");

//add card request
router.post("/:id/addcard",getUser,async (req,res) => {
  try {
    if (req.body != null) {
      const newCard = new cardSchema({
        name: req.body.name,cardNumber: req.body.cardNumber,ccv: req.body.ccv,expiration: req.body.expiration,});
      res.user.cardInfo.push(newCard);
    }
    const updatedCardInfo = await res.user.save();
    return res.status(200).json(updatedCardInfo);
  } catch (error) {
    return res.status(400).json({ message: error.message });
  }
});

//delete card request
router.delete("/:id/deletecard",res) => {
  if (req.body !== null) {
    res.user.cardInfo.remove(req.body);
  }

  try {
    const updatedUser = await res.user.save();
    res.status(200).json(updatedUser);
  } catch (error) {
    res.status(400).json({ message: error.message });
  }
});

//get user middleware
async function getUser(req,res,next) {
  let user;
  try {
    user = await User.findById(req.params.id);

    if (user == null) {
      return res.status(404).json({ message: "Cannot find user" });
    }
  } catch (error) {
    return res.status(500).json({ message: error.message });
  }

  res.user = user;
  next();
}

module.exports = router;


我已经三重检查我是否使用了正确的 URL 并在 req.body 中传递了正确的信息。我在调用删除请求后收到了用户信息,但没有删除卡信息。我还在我的数据库中检查了它是“cardInfo”,所以那里也没有拼写错误。

BDanube 回答:为什么我的 router.delete() 在 express.js 中不起作用?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/797.html

大家都在问