Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
219 views
in Technique[技术] by (71.8m points)

node.js - how to pass function value

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

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

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...