2017-04-15 37 views
0

我有mlab.com一個數據庫,我可以成功發佈到我的控制器使用此代碼:如何在視圖(HTML)中訪問和顯示數據庫(MongoDB)信息?

app.post('/dashboard', function(req, res) { 
    var newEvent = req.body; 
    db.collection('events').insertOne(newEvent, function(err, doc) { 
    if (err) { 
     error(res, "Failed to create new event."); 
    } else { 
     res.sendFile('views/dashboard.html', { root: '.' }); 
    } 
    }); 
}); 

在本地主機:8080 /儀表板URL,我有一個表格,用戶可以在事件進入數據。

現在我的問題是,我如何獲得該數據能夠在HTML中顯示它?例如,顯示在相同/儀表板URL中輸入的所有事件的列表,但列在頁面上的不同位置。我相信我需要沿着這些路線做些事情:

app.get('/dashboard', function (req, res) { 
    db.collection('events').findOne({ 
    eventName : req.body.eventName 
    }, function(err, doc) { 
    // ???? 
    }); 
}); 

但是,那麼如何顯示我在HTML視圖中找回的數據呢?

任何幫助將不勝感激,因爲我已經停留了相當一段時間了。

+0

能你發佈你的HTML視圖文件的代碼,你從中調用/儀表板路線? – phpkode

回答

0

你有兩個選擇

1)使用模板系統像EJS或玉器和渲染頁面。例如,如果您傳遞變量位於視圖/頁文件夾中的文件dashboard.ejs,你怎麼稱呼它像

res.render('views/pages/dashboard', { 
      feild1: value1, 
      feild2: value2 
     }); 

然後使用代碼打印在dashboard.ejs像

<div><%= feild1 %></div> 
<div><%= feild2 %></div> 

地段的文檔可用於網上的選項

2)發送數據爲json並使用一些JavaScript代碼或基於JavaScript的前端框架來呈現它們。如果你是在前端JavaScript編碼好,你可以去這個方法

var data = { "feild1" : doc.xxx, "feild2" : doc.yyyy }; 
res.setHeader('Content-Type', 'application/json'); 
res.send(JSON.stringify(data)); 

的JSON可以使用來自客戶端的AJAX調用訪問(你可以使用jQuery爲)

$.getJSON('/dashboard', function(obj) { 
    alert(obj.feild1); 
    alert(obj.feild2); 
}); 
+0

我相信數據是作爲json對象發送的,我可以使用req.body.eventName訪問它,但我不確定如何訪問HTML文件中的數據 –

+0

我沒有看到任何請求.send()在你的代碼中。你能發佈完整的代碼嗎? – phpkode

+0

目前你只查詢,但不會按照你的代碼發回任何數據 – phpkode