Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User.findById() throws a CastError #21

Open
connecteddeveloper opened this issue Feb 19, 2015 · 5 comments
Open

User.findById() throws a CastError #21

connecteddeveloper opened this issue Feb 19, 2015 · 5 comments

Comments

@connecteddeveloper
Copy link

The get route in the api (from chapter 10) throws an error when a user id is passed in the url in postman.

Here is the relevant code:

User.findById(req.params.user_id, function (err, user) {
if (err) res.send(err);

        res.json(user);
    });

{
"message": "Cast to ObjectId failed for value "54e17f7d44a911a16653b4b" at path "_id"",
"name": "CastError",
"type": "ObjectId",
"value": "54e17f7d44a911a16653b4b",
"path": "_id"
}

I've tried casting the value from req.params.user_id to an id using mongoose.Types.ObjectId(), but still no luck. This problem happened with the code from the repo as well as my own code.

@chris-sev
Copy link
Member

Can you add an image of your POSTman?

Chris Sevilleja | scotch.io http://scotch.io/
@scotch_io http://twitter.com/scotch_io
@sevilayha http://twitter.com/sevilayha

On Wed, Feb 18, 2015 at 6:34 PM, connecteddeveloper <
[email protected]> wrote:

The get route in the api (from chapter 10) throws an error when a user id
is passed in the url in postman.

Here is the relevant code:

User.findById(req.params.user_id, function (err, user) {
if (err) res.send(err);

    res.json(user);
});

{
"message": "Cast to ObjectId failed for value "54e17f7d44a911a16653b4b"
at path "_id"",
"name": "CastError",
"type": "ObjectId",
"value": "54e17f7d44a911a16653b4b",
"path": "_id"
}

I've tried casting the value from req.params.user_id to an id using
mongoose.Types.ObjectId(), but still no luck. This problem happened with
the code from the repo as well as my own code.


Reply to this email directly or view it on GitHub
#21.

@connecteddeveloper
Copy link
Author

screenshot 2015-02-18 18 50 08

@connecteddeveloper
Copy link
Author

I got this to work using the find method and passing in the id instead:

var id = req.params.user_id;
    User.find({_id: id}, function(err, user) {

        if (err) return res.send(err);

        // return that user
        res.json(user);
    });

@ghost
Copy link

ghost commented Mar 19, 2015

@connecteddeveloper I got this to work by adding return to the if statement.

  .get(function(req, res) {
    User.findById(req.params.user_id, function(err, user) {
      if (err) return res.send(err);

      // return that user
      res.json(user);
    });
  })

@josephkandi
Copy link

Mine works fine, i can retrieve the user without issues, it could have been version issues with Mongo maybe

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants