Search code examples
node.jsreactjsexpressfetch

req.users undefined react express


so im getting an undefined response when fetching my api and i really dont know why

this is the function calls in the component

const init = usersId => {
   
    
    getUser(usersId).then(data => {
        if (data.error) {
            setValues({ ...values, error: data.error });
        } else {
            // populate the state
            setValues({
                ...values,
                username: data.username,
                email: data.email,
               
                formData: new FormData()
            });
            
        }
    });
};

this is the api call in react

export const getUser = usersId => {
    console.log('ok')
    console.log(usersId)
    
    return fetch(`${API}/users/${usersId}`, {
        method: 'GET'
    })
        .then(response => {
            return response.json();
        })
        .catch(err => console.log(err));
        
};

at this point im getting the user id correctly but when the fetch is running i get an error that i cant read property of undefined so, there is the express server endpoint

router.get('/users/:usersId',
        read_);

and here is the controller

userCtrl.read_ = (req, res) => {

    console.log(req.users)
    console.log('test')
    return res.json(req.users);
};

i really dont know what im doing wrong at this point


Solution

  • if you want req.user you'll have to find user from id. you can get id by req.params.userId after getting userdata from database assign user object to req.user

    like this: req.user = user; then you can access req.user