'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 1:[1]
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)
}
Solution 2:[2]
The order of parameters is Request, Response so you have to do this:
app.get('/profile/:id', (request, response) => {
const { id } = request.params;
db.select('*').from('user').where({id}).then(
user => {
res.json(user[0])
});
});
Solution 3:[3]
I see your error man, you put in the function (res, res) and should be (req,res).
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Prathamesh More |
| Solution 2 | JuanDa237 |
| Solution 3 | José Salina |
