javascript - Using res.render and sending over a json file at the same time -


this question has answer here:

i have express application mongodb database , handlebars server-side templating engine. not using angularjs or ajax in application.

in 1 of routes, have render page send on json file database. however, not able achieve this.

this code snippet route:

router.get('/disks', function(req, res, next) {        var risime;    places.find({"category": "disks"}, function(err, disk){       if(err){         throw err;       }        risime= disk;       console.log(risime);  //properly logs output    });    res.render('diskpage',      {       'disks': risime     });  }); 

in hbs, trying capture it, not getting json data:

  var clrisime= "{{risime}}"   console.log(clrisime); // not log anythin 

how make happen?

you made 2 simple mistakes:

router.get('/disks', function(req, res, next) {    var risime;    places.find({"category": "disks"}, function(err, disk){       if(err){         throw err;       }        risime= disk;       console.log(risime);  //properly logs output        // belongs inside db callback       res.render('diskpage',          {           'disks': risime           // if call field 'disks' here, need write {{disks}} in template         });   });   }); 
  1. since want use database result in response, need put res.render inside callback.
  2. the variable name inside template , field name of render object must same.

Comments