【问题标题】:How to access and display database (MongoDB) information in the view (HTML)?如何在视图 (HTML) 中访问和显示数据库 (MongoDB) 信息?
【发布时间】:2017-04-15 18:06:26
【问题描述】:

我在 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 中显示?例如,显示在同一 /dashboard URL 但在页面上的不同位置输入的所有事件的列表。我相信我需要按照以下方式做一些事情:

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

但是我如何在 HTML 视图中显示我得到的数据呢?

任何帮助将不胜感激,因为我已经坚持了很长一段时间了。

【问题讨论】:

  • 您能否发布您调用 /dashboard 路由的 html 视图文件的代码?

标签: javascript html mongodb express database


【解决方案1】:

你有两个选择

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);
});

【讨论】:

  • 我相信数据是作为 json 对象发送的,我可以使用 req.body.eventName 访问它,但我不确定如何访问 HTML 文件中的数据
  • 我在您的代码中没有看到任何 req.send()。你能发布完整的代码吗
  • 目前您只是查询,而不是根据您的代码发回任何数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
  • 2017-04-16
  • 1970-01-01
  • 1970-01-01
  • 2019-01-22
  • 2017-05-25
相关资源
最近更新 更多