我尝试通过点击按钮从数据库中的数组中删除this
项,但是我遇到了错误,我看不出自己的错误。我有错误:RangeError:超出了最大调用堆栈大小,更重要的是我有/api/editProduct/undefined
工厂:
userFactory.deleteDescription = function(description) {
return $http.delete('/api/editProduct/' + description)
}
API
router.delete('/editProduct/:description', function(req, res){
Product.findOneAndUpdate({ _id: req.body_id }, { $pull: { description: this }}, function(err, product){
if(err) throw err;
if(!product){
res.json({ success: false, message: 'No user found' });
} else {
console.log('ok')
}
});
});
模型
var productSchema = new Schema({
title: {
type: String,
require: true,
},
level: {
type: String,
require:true,
},
description: [{
type: String,
require: true,
}],
});
piont是删除所选项目
答案 0 :(得分:1)
在expressjs路线中使用命名参数时,您可以通过req.params['yourKey']
访问该值。在您的情况下,这将是req.params.description
因此,您可以删除某个产品中的描述条目
Product.findOneAndUpdate(
{ _id: req.body_id },
{ $pull: { description: req.params.description }},
function(err, product){
...
}
);