2016-01-01 46 views
-2

我已經寫了下面的代碼從MongoDB中獲取數據:的NodeJS,MongoDB的:通過獲取數據並顯示它在HTML

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打印值。以下是截圖。 enter image description here

請讓我知道如何繼續。對不起,很多。

回答

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並在不同的終端蒙戈,然後運行該代碼..

在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 

這樣你就可以觸發您的節點應用一個數據庫。 然後你需要定義你的'問題'數據集。

question.js文件

var mongoose = require('mongoose'); 
module.exports = mongoose.model('Question', { 
number: String, 
text: String 
} 

希望這有助於!

+0

我正在讀取來自MongoDB集合的值。我將它存儲到遊標中,並且值必須傳遞給HTML。你給出的例子已經硬編碼了數組的值,但在我的情況下,它們是從mongodb中讀取的。 – Abhinav

+0

我知道..我已經離開你了..因爲你的問題問如何顯示在HTML頁面上,你說你已經能夠獲取它們。所以,只要結合你和這個,你應該很好去.. –

+0

好吧,現在我有一個更新的版本...請參閱nodeJs資源如何鏈接mongo數據庫,如果你仍然有問題。我猜想這是一個簡單的步驟 –

相關問題