Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

40,003 questions

51,950 answers

573 users

How to update an item from JSON object in Node.js and Express

1 Answer

0 votes
// Users.js

const users = [
    {
        id: 52325,
        name: 'SpongeBob',
        age: 23
    },
    {
        id: 19473,
        name: 'Squidward Tentacles',
        age: 35
    },
    {
        id: 58237,
        name: 'Mr. Krabs',
        age: 45
    }
];

module.exports = users;
// routes/users.js

const express = require('express');
const users = require('../Users');
 
const router = express.Router();
    
router.put('/:id', (req, res) => {
    const found = users.some(users => users.id === parseInt(req.params.id));
    if (found) {
        const updateUser = req.body;
        users.forEach(user => {
            if (user.id === parseInt(req.params.id)) {
                user.name = updateUser.name ? updateUser.name : user.name;
                user.age = updateUser.age ? updateUser.age : user.age;
                res.json({ msg: `User ${req.params.id} updated`, users})
            }
        });
    } else {
        // 400 Bad Request
        res.status(400).json({msg: `User ${req.params.id} not found`})
    }
});
 
module.exports = router;
// index.js

const express = require('express');
    
const app = express();
 
app.use(express.json());
 
app.use('/users', require('./routes/users'))
 
const PORT = process.env.PORT || 8080;
    
app.listen(PORT, () => console.log(`Server started on port ${PORT}`));
 
 
 
   
/*
run:
 
Server started on port 8080

On Postman - Body (PUT)
{
	"age": 30
}

On http://localhost:8080/users/52325
{
    "msg": "User 52325 updated",
    "users": [
        {
            "id": 52325,
            "name": "SpongeBob",
            "age": 30
        },
        {
            "id": 19473,
            "name": "Squidward Tentacles",
            "age": 35
        },
        {
            "id": 58237,
            "name": "Mr. Krabs",
            "age": 45
        }
    ]
}
 
*/

 



answered Mar 20, 2020 by avibootz

Related questions

...