从数组中删除项后出错

时间:2017-07-18 19:39:24

标签: javascript node.js express mongoose

我尝试通过点击按钮从数据库中的数组中删除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,
}],
});

enter image description here

piont是删除所选项目

1 个答案:

答案 0 :(得分:1)

在expressjs路线中使用命名参数时,您可以通过req.params['yourKey']访问该值。在您的情况下,这将是req.params.description

因此,您可以删除某个产品中的描述条目

Product.findOneAndUpdate(
    { _id: req.body_id },
    { $pull: { description: req.params.description }},
    function(err, product){
        ...
    }
);