在 for 循环 finishes/pushed 到数组之前在页面上呈现 EJS

EJS rendering on page before for loop finishes/pushed to array

我正在尝试使用 EJS 在 HTML 中呈现一个数组。但是我的 EJS 在数据被推送到空数组之前呈现,因此在页面上呈现了一个空数组。

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

var testgroup = [];

for (var i = 0; i < problems.length; i++) {
    var test = problems[i].state;
    testgroup.push(test);
    console.log(testgroup)
}

如何才能在 for 循环完成之前不在页面上呈现。

将循环放在您渲染的函数中:

app.set('view engine', 'ejs'); 
app.get('/', function(req, res) 
    { 
        var testgroup = []; 
        for (var i = 0; i <  problems.length; i++){ 
             var test = problems[i].state;
             testgroup.push(test);
             console.log(testgroup) }
      res.render('index.ejs'{ testgroup:testgroup }) 
});