Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have created models called (user.js)

    module.exports.show_deatils = function(req,res,callback){   
      var resultArray=[];
      mongo.connect(url,function(err,db){
        assert.equal(null,err);
        var cursor=db.collection('users').find();
        cursor.forEach(function(doc,err){
          assert.equal(null,err);
          resultArray.push(doc);         
        });
      });
    }

    router.get('/restful', function(req, res){    
      User.show_deatils(function(req,res,resultArray){
        req.session.resultArray=resultArray;
        console.log(resultArray);
      });
      res.render('restful');
    });

I have created a method("show_details") in models user.js and I am calling that particular function in routes. whenever the page (restful) gets loaded I want the data resultArray to be displayed. But I am stuck here.

Can you please suggest me how to solve the issue?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
213 views
Welcome To Ask or Share your Answers For Others

1 Answer

On your res object, you need to pass the variable resultArrayin your render function, so it becomes available to use in your template.

Something like:

res.render('restful', {var_in_ejs_template: resultArray});

This is thoroughly documented in express.js's documentation: link

Also, don't put the result in the res.session property. Looks dirty.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...