TypeError: Невозможно прочитать свойство 'push' из неопределенного, когда элементы фактически выдвигаются - PullRequest
0 голосов
/ 07 мая 2018

Я получаю сообщение об ошибке: 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("/");
      }
    });
  });
});

1 Ответ

0 голосов
/ 07 мая 2018

Ваш solditems на item равен undefined, и вы звоните на него push.

Изменить

item.solditems.push(sold);

до

item.solditems = item.solditems || []; // if solditems undefined set to empty array
item.solditems.push(sold);
...