Axios.delete也不按我想要的方式工作

时间:2018-11-08 13:42:33

标签: javascript express axios

这是一个健身应用程序,当用户将自己预订到班级中时,该班级会将userId保存为将要参加的用户,然后在用户模型中,您还将获得该用户正在参加的班级。

当前达到500 (Internal Server Error)

以下是axios个调用:

deleteClassHandler = () => {
    this.deleteUserClassHandler();
    const data = {
      userId: this.props.userId,
      classId: this.props.id
    }
    axios.delete('/api/classes/remove', data)
      .then(response => {
          console.log(response);
      })
      .catch(error => {
          console.log(error);
      });
}

deleteUserClassHandler = () => {
    const data = {
      userId: this.props.userId,
      classId: this.props.id
    }
    axios.delete('/api/auth/remove', data)
      .then(response => {
        console.log(response);
      })
      .catch(error => {
        console.log(error);
      });
}

用正确的值填充this.props.userIDthis.props.id

这些是路线-

班级路线: router.delete('/remove', ClassesController.deleteUser);

验证路线: router.delete('/remove', UserController.deleteClass);

这是控制器:

Classes控制器-

exports.deleteUser = (req, res) => {
  console.log('cl userid ', req.body.userId);
  console.log('cl classid ', req.body.classId);
  GymClass.findById({
    _id: req.body.classId
  }, 'classMembers', (err) => {
    if (err) {
      console.log('class up here');
      res.status(401).json({
        message: "Error Occured!"
      })
    } else {
      GymClass.findByIdAndDelete({
        "classMembers.userId" : mongoose.Types.ObjectId(req.body.userId)
      }, (err) => {
        if(err) {
          console.log('class down');
            res.status(401).json({
              message: "Error Occured!"
            })
        } else {
          res.status(200).json({
            message: "Success!"
          })
        }
      });
    }
  })
}

身份验证控制器-

exports.deleteClass = (req, res) => {
  console.log('auth userid', req.body.userId);
  console.log('auth classid', req.body.classId);
  User.findById({
    _id: req.body.userId
  }, 'bookedClasses', (err) => {
    if (err) {
      console.log('auth up here');
      res.status(401).json({
        message: "Error Occured!"
      })
    } else {
      GymClass.findByIdAndDelete({
        "bookedClasses.classId" : mongoose.Types.ObjectId(req.body.classId)
      }, (err) => {
        if(err) {
          console.log('auth down here');
            res.status(401).json({
              message: "Error Occured!"
            })
        } else {
          res.status(200).json({
            message: "Success!"
          })
        }
      });
    }
  })
}

我绝不是后端超级巨星,我对它一无所知,在座的人是否知道我可能如何更改代码以及解决这个问题的方式?发现任何问题吗? 我遇到500个服务器错误,我不确定该怎么办。如果需要,我总是可以为用户和类发布两个模型。

这也是我尝试过但没有成功的方法-

axios.delete('/api/classes/remove', {
        data: {
          userId: this.props.userId,
          classId: this.props.id
        }
      })
        .then(response => {
          console.log(response);
        })
        .catch(error => {
          console.log(error);
        });
}

0 个答案:

没有答案