【问题标题】:Push data from mongodb into a front-end array将数据从 mongodb 推送到前端数组
【发布时间】:2018-02-08 17:30:56
【问题描述】:

我正在开发一个使用 mongodb 存储数据的简单 node.js 应用程序。我在向数据库添加新记录或使用 ejs 显示数据库记录时没有任何问题。但是,我想在前端使用我的数据库中的数据(顺便说一句,单词列表)。具体来说,我想将查询的结果推送到一个数组中,我可以在前端 js 文件中使用它。这可能吗?

这是 GET 路线:

 app.get("/wordlist", function (req, res) {
      Word.find({}, function(err, allWords){
        if(err){
          console.log(err);
        } else {
          res.render("index", {words: allWords});
        }
      });
    });

这是我用来在 ejs 文件中显示数据的简单循环:

<% words.forEach(function(foo){ %>
  <p><%= foo.word + " " + foo.category + " " + foo._id %></p>
<% }); %>

非常感谢!

【问题讨论】:

  • 具体来说,我想将查询的结果推送到一个数组中。 -- 但它已经是一个数组了...allWords 是一个数组存储在words 中,将传递给您的视图,因此words 是一个数组。我不关注。
  • 对不起,我是初学者,所以我确定我没有正确询问。让我再试一次。我将allWords 存储在words 中,但我只能在我的ejs 标记中使用它。我想要的是能够在我的普通旧 javascript 文件中使用 words 变量。换句话说,如果我在浏览器控制台中输入words,我想查看变量的内容而不是得到“未定义”错误。那有意义吗?还是我应该再试一次?
  • 啊!前端可能意味着很多事情,因此会造成混乱。

标签: express ejs


【解决方案1】:

从技术上讲,&lt;%- JSON.stringify(words) %&gt; 应该足够了,但是我的 IDE 在没有额外逻辑的情况下触发了一个错误,因为它不知道&lt;%- ... %&gt; 解析为一个对象数组。

另外,请注意使用&lt;%- unescaped %&gt; 而不是&lt;%= escaped %&gt;

<script>
    var words = JSON.parse('<%- JSON.stringify(words) %>');
    console.log(words);
</script>

【讨论】:

  • 老兄,你是炸弹点com!非常感谢!
猜你喜欢
  • 1970-01-01
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 2019-02-17
  • 2019-07-20
  • 2017-03-16
  • 2020-05-30
  • 1970-01-01
相关资源
最近更新 更多