TransWikia.com

ошибка при нахождении product, что не так?

Stack Overflow на русском Asked on October 10, 2020

Ошибка: Cannot read property ‘_id’ of null

Добавляем продукт в корзину и ищем его по id:

router.post('/add', auth, async(req, res) => {
    try {
        const product = await Product.findById(req.body.id);
        await req.user.addToCart(product);
        res.redirect('/cart');
    } catch(e) {
        console.log(e.message);
    }
})

метод для добавления в корзину в модели user:

user.methods.addToCart = function(product) {
    const items = [...this.cart.items];
    const idx = items.findIndex(p => {
        return p.productId.toString() === product._id.toString()
    })

    if (idx >= 0) {
        items[idx].count = items[idx].count + 1;
    } else {
        items.push({
            productId: product._id,
            count: 1
        })
    }

    this.cart = { items };
    return this.save();
}

Также я меняю обычный _id от mongodb на id в модели user:

product.method('toClient', function() {
    const product = this.toObject();

    console.log(product.id);

    product.id = product._id;
    delete product._id;

    return product;
})

Я понимаю, что ошибка в модели user, что я передаю туда product, который null.
Но я не понимаю, как он может быть равен null, ищу я его правильно:

const product = await Product.findById(req.body.id);

Если я где-то был не прав или глупо ошибся, то я просто не знал этого, я новичок в бэке. Большое спасибо если ответите!

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP