Sunday, 12 March 2017

Mongoose callback function error

I'm learning nodejs, express and mongoose. I came up with a question regarding the findOne function used to retrieve a document from the database. Normally, you would use it like this:

 Product.findOne({_id: req.params.id},function(error, result){
      res.send(result);
});

But when I tried to do the following, it failed (I did it just for the sake of learning):

 Product.findOne({_id: req.params.id}, returnFunction(res));

 function returnFunction(res,error, result){ 
     //error and result  are provided by the findOne callback function
     return function(){
           res.send(result); //doesnt work
      };
  }

But if I pass the parameters to the inner function, it works perfectly:

Product.findOne({_id: req.params.id}, returnFunction(res));

 function returnFunction(res,error, result){ 
       //error and result  are provided by the findOne callback function
       return function(res,result){
             res.send(result); 
       };
 }

Isn't the inner function supposed to have access to the outer functions variable?

Thanks.



via Joel Alvarez Myrrie

No comments:

Post a Comment