Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Mongodb TypeError:无法读取属性';推动';未定义的,实际被推送的项_Mongodb_Mongoose_Undefined - Fatal编程技术网

Mongodb TypeError:无法读取属性';推动';未定义的,实际被推送的项

Mongodb TypeError:无法读取属性';推动';未定义的,实际被推送的项,mongodb,mongoose,undefined,Mongodb,Mongoose,Undefined,我得到错误:TypeError:无法读取未定义的属性“push”,但所有信息都被正确地推送到数据库。那么它为什么会抛出这个错误呢 router.post("/item/:id", middleware.isLoggedIn, (req, res) => { Item.findById(req.params.id, (err, item) => { if(err) { console.log(err); } var soldItem = {

我得到错误:TypeError:无法读取未定义的属性“push”,但所有信息都被正确地推送到数据库。那么它为什么会抛出这个错误呢

router.post("/item/:id", middleware.isLoggedIn, (req, res) => {
  Item.findById(req.params.id, (err, item) => {
    if(err) {
      console.log(err);
    }
    var soldItem = {
      id: item._id,
      item: item.name,
      askPrice: item.price
    };
    var soldPrice = req.body.soldPrice;
    var soldQuantity = req.body.soldQuantity;
    var itemSold = { soldItem: soldItem, soldPrice: soldPrice, soldQuantity: soldQuantity };
    SoldItem.create(itemSold, (err, sold) => {
      if (err) {
        console.log(err);
      } else {
        item.solditems.push(sold);
        item.save();
        req.flash("success", "Item Sold");
        res.redirect("/");
      }
    });
  });
});

您在
项上的
solditems
未定义的
,您正在对其调用
push

改变

item.solditems.push(已售出)


我们可以看一下您的
SoldItem
mongoose模式吗?您的
solditems
肯定不包含
array
检查您的物品集合您不能在那里有solditems。
item.solditems = item.solditems || []; // if solditems undefined set to empty array
item.solditems.push(sold);