Home > other >  decrease number server making with express put method
decrease number server making with express put method

Time:05-09

I am trying to decrease the quantity, which I have to change on mongodb database, also I need to show it in body. I set a button called delivered which will decrease the quantity value by 1 . but when I click on the delivered button suddenly nodemon index.js cmd crashed. it says"MongoInvalidArgumentError: Update document requires atomic operators"

//Client side:

const handleQuantity = (quantity) => {
        const newQuantity = Number(quantity) - 1;
        // console.log(newQuantity);
        fetch(`http://localhost:5000/inventory/${itemsId}`, {
            method: "PUT",
            headers: {
                'content-type': 'application/json'
            },
            body: JSON.stringify({ newQuantity })
        })
            .then(res => res.json())
            .then(data => console.log(data))

    }
//server side: 

app.put('/inventory/:id', async (req, res) => {
            const id = req.params.id;
            const property = req.body;
            const query = { _id: ObjectId(id) };
            const options = { upsert: true };
            const updateDoc = {
                $set: {
                    quantity: property.newQuantity
                }
            };
            const result = await inventoryCollection.updateOne(query, options, updateDoc);
            res.send(result)
        })```

CodePudding user response:

Client side:

const handleQuantity = (quantity) => {
    const newQuantity = parseInt(quantity) - 1;
    // console.log(newQuantity);
    fetch(`http://localhost:5000/inventory/${itemsId}`, {
        method: "PUT",
        headers: {
            'content-type': 'application/json'
        },
        body: JSON.stringify({ newQuantity })
    })
        .then(res => res.json())
        .then(data => console.log(data))

}
  • Related