Can I render multiple sources in EJS

我只是一个虾纸丫 提交于 2020-01-13 19:41:07

问题


I am attempting to use data from 2 different sources, but render them on the same HTML page using EJS, JS and node. This is what I am trying..

app.set('view engine', 'ejs');
app.get('/', function(req, res) {
  res.render('index.ejs', { data: JSONdata })
  res.render('index.ejs', {data2: arrayData})
});

data is a JSON, data2 is an array. I have attempted to look up proper syntax for this exact process but cant seem to find anything.

Many thanks.


回答1:


You cannot render more than once to a single request.

But you could simply combine your JSON and array data and stringify it.

App.set('view engine', 'ejs');
app.get('/', function(req, res) {
  res.render('index.ejs', JSON.stringify({data2: arrayData, data1: JSONdata}))
});

Or simply assign both variables into a single object and parse it to the render function

var returnVals= JSON.stringify({data2: arrayData, data1: jsonData}); 



回答2:


You cannot render more than once to a single request.

But if you want to show different types of data like:

SSCResult.find({username:username},function (err, results) {
  var username=req.user.username;
  var fullname =req.user.firstname+' '+req.user.lastname;
  if (err) return console.error(err);

  console.log(results);

  res.render('sscandhsc',{fullname:fullname,results});
  
});

SSCResult is a Schema. and results is like

[ { _id: 59f61fe2fec3cc7bf804f95e,
    examtype: 'HSC',
    username: '1',
    __v: 0,
    gpa: '5.00',
    institution: 'New Govt. Degree College, Rajshahi',
    passedyear: '2013',
    board: 'Rajshahi' },
  { _id: 59f6408efec3cc7bf804fc78,
    examtype: 'SSC',
    username: '1',
    __v: 0,

    gpa: '5.00',
    institution: 'Taragunia High School',
    passedyear: '2011',
    board: 'Jessore' },
  { _id: 59f656a9fec3cc7bf8050146,
    examtype: 'JSC',
    username: '1',
    __v: 0,
    gpa: '5.00',
    institution: 'Taragunia High School',
    passedyear: '2008',
    board: 'Jessore' } ]

so "results" and fullname is different types of json and you also can send it.

Lastly the upper(1) solution is also right form same type json file. Thank you. Hope it will help you. :)



来源:https://stackoverflow.com/questions/37287352/can-i-render-multiple-sources-in-ejs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!