我可以在 EJS 中渲染多个源吗

Can I render multiple sources in EJS

我正在尝试使用来自 2 个不同来源的数据,但使用 EJS、JS 和节点将它们呈现在同一个 HTML 页面上。 这就是我正在尝试的..

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

data是一个JSON,data2是一个数组。我试图为这个确切的过程查找正确的语法,但似乎找不到任何东西。

非常感谢。

您不能对单个请求呈现多次。

但您可以简单地组合 JSON 和数组数据并将其字符串化。

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

或者简单地将两个变量分配到一个对象中并将其解析为渲染函数

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

您不能对单个请求呈现多次。

但是如果您想显示不同类型的数据,例如:

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 是一个架构。结果就像

[ { _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.

最后,upper(1) 解决方案也适用于相同类型的 json 文件。 谢谢你。希望它能帮助你。 :)