Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript类型错误:无法读取属性';查找';未定义的_Javascript_E Commerce - Fatal编程技术网

Javascript类型错误:无法读取属性';查找';未定义的

Javascript类型错误:无法读取属性';查找';未定义的,javascript,e-commerce,Javascript,E Commerce,您好,我对编码还不熟悉&面临一个我自己无法解决的奇怪问题,请参阅下面的代码 const Cart = require('../model/cart'); exports.addToCart = (req, res) => { Cart.find({user: req.user._id}).exec((error, data) => { if (error) return res.send(error); if

您好,我对编码还不熟悉&面临一个我自己无法解决的奇怪问题,请参阅下面的代码

const Cart = require('../model/cart');
 
    exports.addToCart = (req, res) => {
        Cart.find({user: req.user._id}).exec((error, data) => {
            if (error) return res.send(error);
            if (data) {
                console.log(data);
                const product = req.body.cartItems.product;
                const addOne = data.cartItems.find(c=>c.product == product);
                if(addOne){
                    Cart.findOneAndUpdate({ "user" : req.user._id, "cartItems.product" :product},{   
                        "$set":{
                            "cartItems": {
                                ...req.body.cartItems,
                                quantity : addOne.qunatity + req.body.cartItems.qunatity,
                            }
                        }
                    }).exec((error,data)=>{
                        if (error) return res.send(error);
                        if (data) return res.send(data);
                    });
                }
                else{
                    Cart.findOneAndUpdate({ user : req.user._id},{
    
                        "$push":{
                            "cartItems": req.body.cartItems
                        }
                    }).exec((error,data)=>{
                        if (error) return res.send(error);
                        if (data) return res.send(data);
                    });
                }        
            }
            else {
    
                const cart = new Cart({
                    user: req.user._id,
                    cartItems: [req.body.cartItems]
                });
                cart.save((error, data) => {
                    if (error) return res.send(`Something went wrong ${error}`);
    
                    if (data) return res.send(data);
                }) 
            }
        })
    };
  • 我的电脑出了一个错误

    const addOne=data.cartItems.find(c=>c.product==product)

  • 但是根据我的逻辑,代码不应该进入if(data)条件,因为第一个条目的数据是空的。它应该位于else代码的底部

  • 但是根据我的逻辑,代码不应该进入if(数据)条件 因为第一个条目的数据为空。它应该去医院 从下到下到else代码

    您的
    if
    语句条件没有将您从错误中解救出来
    TypeError:无法读取未定义的属性“find”
    ,因为“data”包含任何类型的值(exclude->null、undefined或0),但预期的“cartItems”在“data”对象中不存在

    您可以尝试以下代码来调试代码:

    console.log(data.cartItems) // will return undefined
    console.log(data) // doesn't contain "cartItems"
    
    如果
    cartItems
    对您的状况很重要,请使用:

    if(data && data.cartItems)
    
    对于您帖子中的#2,您的
    数据不太可能未通过真实性测试:

    注意,
    如果({})
    是真实的。即使是空的JSON响应也是真实的


    由于您记录了数据,请共享其值。最好将所有可能的数据作为问题的一部分提供。

    仅仅因为定义了
    数据
    ,并不意味着它有
    cartItems
    属性您似乎要记录
    数据
    。抛出错误时它包含什么?它是否有一个
    cartItems