каждый
У меня есть функция, которая находит документ и обновляет его массив.
, когда я пытаюсь вызвать его несколько раз одновременно, он выходит из строя
i попытался перейти от save () к update (), но он все еще не работает должным образом, и массив обновляется только один раз
. Как мне ждать, пока каждый запрос не завершит sh обновление документа, а затем снова обновить документ ?
async function(req, res) {
if (
!req.body.auctionId ||
!req.body.productId ||
!req.body.price ||
!req.body.addedPrice
) {
return res.status(500).send();
}
const { auctionId, productId, price, addedPrice } = req.body;
let auctionProduct = await AuctionProduct.findOne({
auctionId,
product: productId
}).exec();
if (!auctionProduct) return res.sendStatus(400);
if (auctionProduct.endDate < Date.now()) {
return res.sendStatus(409);
}
const newBid = new AuctionBid({
bidder: req.user._id,
price: auctionProduct.currentPrice + addedPrice,
addedPrice,
product: auctionProduct.product,
auction: auctionId
});
await newBid.save();
auctionProduct.highestBid = newBid._id;
auctionProduct.currentPrice =
auctionProduct.currentPrice + newBid.addedPrice;
auctionProduct.history = [newBid._id, ...auctionProduct.history];
await auctionProduct.save();
res.send();
}