How to return specific item from JSON object using routes folder in Node.js and Express

1 Answer

0 votes
// Users.js

const users = [
    {
        id: 52325,
        name: 'Bob Sponge',
        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.get('/:id', (req, res) => {
    const found = users.some(users => users.id === parseInt(req.params.id));
    if (found) {
        res.json(users.filter(users => users.id === parseInt(req.params.id)))
    } 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('/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 http://localhost:8080/users/19473
[
    {
        "id": 19473,
        "name": "Squidward Tentacles",
        "age": 35
    }
]
*/

 



answered Mar 19, 2020 by avibootz

Related questions

...