Search code examples
javascriptnode.jsjsonexpressbody-parser

TypeError: Cannot destructure property id of req.params as it is undefined


I'm trying to get a user profile from a database and return it as a json object when the profile url (localhost:3000/Profile/1) is ran. but i am getting this error: TypeError: Cannot destructure property id of req.params as it is undefined.

here is the code in the express server.

const express = require('express');
const bodyParser = require('body-parser');
const bcrypt = require('bcryptjs');
const cors = require('cors');
const knex = require('knex');

const app = express();
app.use(cors());
app.use(bodyParser.json());


app.get('/Profile/:id', (res,req) =>{
    const {id} = req.params;
    db.select('*').from('user').where({id})
    .then(user => {
    res.json(user[0])})
})

i used postman to send the get request.


Solution

  • You passing the wrong parameters to the get function

    E.g.

    // respond with "hello world" when a GET request is made to the homepage
    app.get('/', function (req, res) {
      res.send('hello world')
    })
    

    In your case

    app.get('/Profile/:id', (req, res) =>{
       console.log(req.params)
    }