我在mlab.com上有一个数据库,我可以成功发布到我的控制器中使用此代码:
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: '.' });
}
});
});
在localhost:8080 / dashboard URL上,我有一个表单,用户可以在其中输入事件数据。
现在我的问题是,如何让数据能够在HTML中显示?例如,显示在同一/仪表板URL处输入但在页面上的不同位置输入的所有事件的列表。我相信我需要在这些方面做点什么:
app.get('/dashboard', function (req, res) {
db.collection('events').findOne( {
eventName : req.body.eventName
}, function(err, doc) {
// ????
});
});
但是,如何在HTML视图中显示我得到的数据呢?
任何帮助都会非常感激,因为我已经坚持了很长一段时间。
答案 0 :(得分:0)
您有两个选择
1)使用像ejs或jade这样的模板系统来渲染页面。例如,如果要将变量传递给位于views / pages文件夹中的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));
可以使用客户端的ajax调用访问json(可以使用jquery)
$.getJSON('/dashboard', function(obj) {
alert(obj.feild1);
alert(obj.feild2);
});