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);
Если я где-то был не прав или глупо ошибся, то я просто не знал этого, я новичок в бэке. Большое спасибо если ответите!
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP