Запрос GET, затем PUT в Postman работает, как и ожидалось, хотя я не вижу, как программно сделать это в узле.
пример:
Запрос GET localhost: 3000 / orders / Asiaвозвращает 50 акций
Запрос PUT localhost: 3000 / orders / Asia / 40 возвращает 10
app.get('/orders/:coffeeid', function(req, res) {
db.collection('coffees').find({'name': req.params.coffeeid}).toArray((err, result) => {
if (err) return res.send(500, err)
var data = {
"orders": {
"name": result.coffeeid,
"stock": result.stock
}
};
res.json(result);
})
})
app.put('/orders/:coffeeid/:quantity', function(req, res) {
db.collection('coffees').find({'name': req.params.coffeeid}).toArray((err, result) => {
if (err) return res.send(500, err)
orders = {
"name": req.params.name,
"quantity": req.params.quantity
};
console.log(result[0].stock, orders.quantity, orders.quantity <= result[0].stock) // resolvido
console.log(orders.quantity)
if (Number(orders.quantity) <= Number(result[0].stock) ) {
result[0].stock = result[0].stock - orders.quantity
db.collection('coffees').updateOne({'name': req.params.coffeeid}, result[0], function(err, result) {
console.log('Order dispached. Thank you');
res.json(result);
res.render('orders.ejs', {orders: result, success: false})
});
}
else {
console.log('There isnt enough in stock. Will dispach ASAP');
res.json({error: true});
}
})
})
Как программно вызвать update после "получения" стоимости акций из get?
Спасибо