node.js - Axios.delete() 未按预期触发
问题描述
所以我有一个课程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
这是我们要修改的类的类 ID,以及req.params.userId
我们要从模型内的数组中删除的用户确实具有正确的值,但是当它到了这一步,它给了我Error
.
我想可能是它没有找到这个:
GymClass.findByIdAndDelete({
"classMembers.userId" : mongoose.Types.ObjectId(req.params.userId)
因为它在classMembers
. 有什么想法或建议可以让它发挥作用吗?非常感谢。
解决方案
推荐阅读
- ios - 将 iOS 升级到 13.3.1 后,Flutter 应用程序未在 iPhone 中运行
- python - 带有按计数排序的条形返回的熊猫图?
- reactjs - 从 React 客户端获取对 api 的 POST 请求时,CORS 不起作用
- python - 将 JSON 发送到 Django 模板
- python - 如何检查所有子列表中的一组必需元素
- javascript - 查找数字的第 n 位 JavaScript
- genexus - 如何在 Genexus 中预加载数据子级网格?
- scala - 如何编写与具有不同签名的多个案例类匹配的类型约束
- javascript - JS中的类变量声明和函数声明有什么区别
- javascript - settimeout 是否可以与 eventListener 中的 cleartimeout 发生冲突,它们是否在同一线程上执行