我已经编写了以下代码来从mongodb获取数据:
app.get('/StudentQuestionsPage',function(req,res){
var questions="";
MongoClient.connect(url, function (err, db) {
if (err) {
console.log('Unable to connect to the mongoDB server. Error:', err);
}
else {
console.log('Connection established to', url);
var collection = db.collection('studentQuestions');
var cursor =collection.find();
fs.readFile( __dirname + '/StudentQuestionsPage.html', 'utf8', function(err, content) {
var result = content;
cursor.each(function (err, doc) {
if (err) {
console.log(err);
} else {
result +=doc;
}
});
res.send(result);
});
}
});
});
我想将超过1的问题传递给html文件,并希望在那里显示这些问题。我可以看到问题正在被提取,但我不确定如何在HTML上显示它们。有人可以帮忙吗?
我添加了以下代码:
app.get('/StudentQuestionsPage',function(req,res){
var studentQuestions = mongoose.model('studentQuestion', studentQuestionSchema);
fs.readFile( __dirname + '/StudentQuestionsPage.html', 'utf8', function(err, content) {
var result = content;
res.send(result).status({studentQuestions:studentQuestions});
mongoose.connection.close()
});
});
但它不会在HTML上打印值。以下是屏幕截图。https://jsfiddle.net/mouseoctopus/7ryfLu68/
请让我知道如何继续。很抱歉ping了很多。
答案 0 :(得分:1)
var questions = [
{ number: '1', text: 'question_1' },
{ number: '2', text: 'question_2' },
{ number: '3', text: 'question_3' },
];
res.send(result, {
questions: questions});
在上面的代码中,我假设我有一个预定义的问题数组,而不是初始化一个空数组。在代码的res.send()部分,添加我上面写的代码,创建一个问题列表,我们将在html文件中使用这些问题来显示问题。 HTML文件 -
<h2>Questions</h2>
<ul>
<% questions.forEach(function(question) { %>
<li>Number: <%= question.number %> - Text: <%= question.text %></li>
<% }); %>
</ul>
通过这种方式,您可以显示问题列表,但这里我们已预先定义了数组。你需要做的是,不是自己将数据传递给数组,而是需要从MongoDb获取数据。您需要做的就是根据数据库的字段更改字段名称。
修改强> 丢弃硬编码的问题数组。 我现在将尝试从mongodb获取数据。我希望你有mongoDb设置并且很好。在不同的终端打开mongod和mongo,然后运行代码..
在server.js文件中
var mongoose = require('mongoose');//I am using mongoose which you can get by running sudo npm install mongoose
mongoose.connect('mongodb://localhost:27017/dbName');//dbName is the database name from which you need to import the questions
这样您就可以在节点应用中触发数据库。 然后你需要定义你的问题&#39;数据集。
question.js文件
var mongoose = require('mongoose');
module.exports = mongoose.model('Question', {
number: String,
text: String
}
希望这有帮助!!!