Я работаю над прототипом приложения для интернет-магазина прямо сейчас с некоторыми базовыми c функциями. У меня есть коллекция продуктов, хранящаяся в mongoDB, у каждого продукта есть поле количества внутри. Когда пользователь делает заказ, я хочу позвонить в API, чтобы количество продукта обновлялось в зависимости от количества продуктов в заказе. Итак, что, как я полагаю, мне нужно, это запрос на получение, который получает текущее количество, и запрос на размещение, который берет значение из получения, вычитает количество заказа и обновляет текущее количество продукта до нового значения. В моем файле контроллера продукта у меня есть:
exports.updateProductQuantity = (req, res) => {
var tempQuantity = this.getQuantity;
const { _id , quantity} = req.body;
console.log(req.body);
Product.findByIdAndUpdate({ _id }, {"Quantity": quantity}, (err, product) => {
if (err || !product) {
return res.status(400).json({
error: "Error updating the product",
});
}
return res.json({ product, message: "Product updated" });
});
};
exports.getQuantity = (req, res) => {
const { _id , quantity} = req.body;
console.log("body of get quantity" , req.body);
Product.findOne({ _id }, (err, product) => {
if (err || !product) {
return res.status(400).json({
error: "Error getting the product quantity.",
});
}
var quantity = product.Quantity;
return quantity;
});
};
// router
router.put("/products/updateQuantity", updateProductQuantity);
Итак, в updateProductQuantity мне нужно каким-то образом вызвать метод get, назначить переменную значению, возвращаемому методом get, а затем использовать эту переменную для калибровки c новое количество. Проблема в том, что я не могу найти способ правильно вызвать метод get, чтобы получить текущее значение количества. tempQuantity либо выдает ошибку, либо не определено. Я пробовал поискать в Google, но не нашел упоминаний об использовании значения из запроса на получение в запросе на размещение или даже в почтовом запросе.