Я пытаюсь добавить товар в свою базу данных, когда пользователь удаляет товар из корзины. Мой маршрут сокращения запаса работает отлично, и я могу удалить запас из моей базы данных. Я попытался сделать наоборот и получить некоторые странные результаты. Когда я req.body.productStock
просто возвращает исходный запас 1000 и «добавляет» к нему 1, и в итоге получается 10001. Я бы хотел любую помощь. 1004 *
router.post('/add-to-cart/:id', function(req, res, next){
var productId = req.params.id;
var cart = new Cart(req.session.cart ? req.session.cart : {});
var size = req.body.bikeSize
var reduceStock = req.body.productStock - 1; <----
var newData = {productStock: reduceStock} <----
Product.findByIdAndUpdate(productId, newData, function(err, product){ <----
if(err){
// !!!!add an error message!!!!
return res.redirect('/');
}
console.log(reduceStock) <----
cart.add(product, product.id, size);
req.session.cart = cart;
console.log(req.session.cart);
res.redirect('/');
});
});
e js, где я «добавляю товар в корзину, уменьшая запас», поэтому
<form action="/add-to-cart/<%= bike.id %>" method="POST">
<button type="submit" name="submit" value="submit" id="addToCart">Add to Cart</button>
<select name="bikeSize" class="custom-select" id="" aria-label="">
<% var sizes = bike.sizes %>
<% sizes.forEach(function(bikeSize) { %>
<option name="bikeSize" value="<%= bikeSize.size %>"> <%= bikeSize.size %> </option>
<% }); %>
<input type="text" value="<%= bike.productStock %>" name="productStock" hidden>
</select>
</form>
мой маршрут добавления запаса и просмотры, которые не работа:
router.post('/reduce/:id', function(req, res, next){
var productId = req.params.id;
var cart = new Cart(req.session.cart ? req.session.cart : {});
var size = req.body.bikeSize
var addStock = req.body.productStock + 1; <----
var newData = {productStock: addStock} <----
Product.findByIdAndUpdate(productId, newData, function(err, product){ <----
if(err){
// !!!!add an error message!!!!
console.log(err);
return res.redirect('/');
}
console.log(addStock) <----
cart.reduceByOne(productId);
req.session.cart = cart;
res.redirect('/shopping-cart');
});
});
вот e js, где я 'удаляю из моей корзины, поэтому добавляю запас обратно в db'
<form action="/reduce/<%= product.item._id %>" method="POST">
<button type="submit" name="submit" value="submit" id="addToCart">Reduce by 1</button>
<input type="text" value="<%= product.item.productStock %>" name="productStock" hidden>
</form>