Sheldon
Sheldon

Reputation: 116

Node show user info by id

I have a simple profile that can everybody see without any auth. I want to display the firstname and lastname but I'm unable to do it.

Here is my code.

// Profile
router.get("/profile/:id", function (req, res) {
    User.findById(req.params.id, function (err, doc) {
        if (err) {
            console.log(err);
            return;
        } else {
            res.render('users/profile', {
                title: 'Profile',
                User
            });
            console.log(User.firstname);
        }
    });
});

I get only undefined in the console.

Upvotes: 0

Views: 50

Answers (1)

BrTkCa
BrTkCa

Reputation: 4783

You are getting the data from the wrong place, you need to use the callback data and don't the model object:

router.get("/profile/:id", function (req, res) {
    User.findById(req.params.id, function(err, doc) {
     if(err) {
         return;
     } else {
        res.render('users/profile', {title: 'Profile', doc});
        console.log(doc, doc.firstname);
     }
  });     
}); 

Changing {title: 'Profile', User} to {title: 'Profile', doc}.

Upvotes: 2

Related Questions