Axios.delete () не запускается должным образом - PullRequest
0 голосов
/ 13 ноября 2018

Итак, у меня есть классы Model, которые содержат массив людей, которые будут посещать занятия, я пытаюсь удалить людей из классов.

Итак, это Model:

const mongoose = require('mongoose');

const classMembersSchema = mongoose.Schema({
  userId: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'user',
  }
})

const classSchema = mongoose.Schema({
  location: {
    type: String,
    required: true
  },
  type: {
    type: String,
    required: true
  },
  name: {
    type: String,
    required: true
  },
  time: {
    type: String,
    required: true
  },
  classMembers: [classMembersSchema]
});

module.exports = mongoose.model('createClass', classSchema);

Я упомянул массив classMembers, из которого я пытаюсь удалить участников.classMembers: [classMembersSchema].

Это axios.delete:

deleteClassHandler = () => {
    axios.delete('/api/classes/' + this.props.id + '/user/' + this.props.userId)
      .then(response => {
        console.log(response);
      })
      .catch(error => {
        console.log(error);
      });
}

Это route:

router.delete('/:id/user/:userId', ClassesController.deleteUser);

Это controller:

exports.deleteUser = (req, res) => {
  GymClass.findById({
    _id: req.params.id
  }, 'classMembers', (err) => {
    if (err) {
      res.status(401).json({
        message: "Error Occured!"
      })
    } else {
      GymClass.findByIdAndDelete({
        "classMembers.userId" : mongoose.Types.ObjectId(req.params.userId)
      }, (err) => {
        if(err) {
            console.log('Keeps hitting here!');
            res.status(401).json({
              message: "Error Occured!"
            })
        } else {
          res.status(200).json({
            message: "Success!"
          })
        }
      });
    }
  })
}

Все работает нормально, пока не достигнет console.log('Keeps hitting here!'); В начале функции req.params.id, который является идентификатором класса, который мы хотим изменить, и req.params.userId, который является пользователем, которого мыЯ хочу удалить из массива внутри модели действительно правильные значения, но когда он добирается до этого шага, он дает мне Error.

Я думаю, что это может быть, что он не находит это:

GymClass.findByIdAndDelete({
      "classMembers.userId" : mongoose.Types.ObjectId(req.params.userId)

Так как он находится в массиве в пределах classMembers.Любая идея или совет, чтобы заставить это работать?Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...