Return data of callback function Node.js [duplicate] Return data of callback function Node.js [duplicate] express express

Return data of callback function Node.js [duplicate]


I don't know how is your app structure, but First Simple solution is below:

app.get('/materialize', function(req, res) {                api500px.photos.getByUsername ('username', {'sort': 'created_at', 'image_size': '3'}, function(error, results) {        if (error) {            console.log(error);            return;        }        var dataPx = results.photos;        res.render('materialize.ejs', {dataPx: dataPx});    });  });

OR adopt better and cleaner approach, use q library,

Wrap api500px.photos.getByUsername in a promise as:

function getUserPhotosAsync() {  var deferred = q.defer();      api500px.photos.getByUsername ('username', {'sort': 'created_at', 'image_size': '3'}, function(error, results) {            if (error) {                deferred.reject(error);            }            deferred.resolve(results.photos);        });   return deferred.promise;}

And use it as:

   app.get('/materialize', function(req, res) {      getUserPhotosAsync().then(function(dataPx) { //looks cool isn't it?        res.render('materialize.ejs', {dataPx: dataPx});      });    });

Happy Helping!