Javascript NodeJS:传递数组并在html页面上显示值

Javascript NodeJS:传递数组并在html页面上显示值,javascript,html,node.js,Javascript,Html,Node.js,我编写了以下代码,使用mongoose从mongodb读取值并将其存储在数组中: app.get('/StudentQuestionsPage',function(req,res){ var allQuestionsArray = studentQuestions.find(); var questions = []; allQuestionsArray.exec(function(err,questions){ if(err) r

我编写了以下代码,使用mongoose从mongodb读取值并将其存储在数组中:

app.get('/StudentQuestionsPage',function(req,res){
    var allQuestionsArray = studentQuestions.find();
    var questions = [];
    allQuestionsArray.exec(function(err,questions){
        if(err)
            return cosole.log(err);
        questions.forEach(function(question){       
            var elem = new Object();
            elem["id"] = question.id;
            elem["quesStatement"] = question.quesStatement;
            elem["optionA"]=question.optionA;
            elem["optionB"]=question.optionB;
            elem["optionC"]=question.optionC;
            elem["optionD"]=question.optionD;

            questions.push(elem);
            console.log(elem)
        });
    }); 
    res.render(__dirname + '/StudentQuestionsPage.html',{questions:questions});
});
我必须将这个问题数组传递到一个html文件,然后我必须在html上显示内容

我已经编写了下面的代码来在HTML上显示数组值,但它没有显示任何内容。“
console.log(elem)
”可以在控制台上打印值

<html>
    <head>
        <title>Online Examination Portal</title>
        <h1>Questions</h1>
    </head> 
    <body>
        <div>   
        <form>
            <h2>Questions</h2>
                <ul>
                    <% questions.forEach(function(question) { %>
                    <li>Number: <%= question.id %> <br/> Text: <%= question.quesStatement %></li>
                    <% }); %>
                </ul>
        </form>
        </div>
    </body>
</html>

在线考试门户
问题
问题
  • 编号:
    文本:

请让我知道如何从nodejs传递值并检索并在html上显示。

首先,将您的
问题
数组重命名为
所有问题
或您想要的任何内容。
.exec的
success函数的参数名与数组相同。因此,它将覆盖数组变量。 由于
allQuestionsArray.exec
是一个
async
函数,您应该从success函数传递
allQuestions
数组。按如下方式重写代码

app.get('/StudentQuestionsPage',function(req,res){
var allQuestionsArray = studentQuestions.find();
var allQuestions = [];
allQuestionsArray.exec(function(err,questions){
    if(err)
        return console.log(err);
    questions.forEach(function(question){       
        var elem = new Object();
        elem["id"] = question.id;
        elem["quesStatement"] = question.quesStatement;
        elem["optionA"]=question.optionA;
        elem["optionB"]=question.optionB;
        elem["optionC"]=question.optionC;
        elem["optionD"]=question.optionD;

        allQuestions.push(elem);
        console.log(elem)
    });
    res.render(__dirname + '/StudentQuestionsPage.html',{questions:allQuestions});
  }); 
});

@Abhinav你试过这个解决方案吗?有什么问题吗?是的,我试过了。但它不会在HTML上显示任何内容。@Abhinav我认为您在HTML上有一些问题。请检查。您的html页面加载是否正确?数据加载是否正确?请查收