【问题标题】:Display Mongodb collection in jade template在jade模板中显示mongodb集合
【发布时间】:2012-08-14 10:15:01
【问题描述】:

我是 node.js 和 mongodb 的新手。 我设置了一个名为“文章”的 mongodb 集合。我想在一个玉模板中显示这个集合的所有文章。我使用了这段代码:

server.js:

articles: db.article.find()

index.jade:

-for article in articles
      .row
        .twelve.columns
          .panel
            li= article.text

玉真的很基础,但会改变。事实上,当我运行这段代码时,jade 模板中的列表是空的,什么也没有显示。看起来变量“articles”是空的。

有谁知道我怎样才能让它工作?

谢谢

【问题讨论】:

    标签: javascript node.js mongodb express pug


    【解决方案1】:

    .find() 是异步的。您正在同步使用它。

    function(req, res, next) {
      db.articles.find().toArray(function(err, articles) {
        res.render('page', {
          articles: articles
        }
      })
    }
    

    【讨论】:

      【解决方案2】:

      尝试:

      - console.log(articles)
      

      在你的模板中判断数组是否为空!

      【讨论】:

      • 我试过了,在控制台中,我得到了这样的结果:'{ _oncursor: { get: [Function], put: [Function] } }'
      • 你使用什么模块来访问你的 mongodb ?
      • 你一定是这里的db吧?你需要 mongodb-native 或 mongoose 还是?
      • 哦,是的 mongodb-native,我设置了一个与我的数据库的其他集合相关的登录/注销页面,并且工作正常。我认为我的问题来自这里 'articles: db.article.find()' 但我真的不知道为什么或如何以其他方式做到这一点..
      • console.log 服务器端并检查您是否有数据。
      猜你喜欢
      • 2016-04-05
      • 2019-10-12
      • 1970-01-01
      • 2021-01-13
      • 2017-01-10
      • 2011-12-21
      • 2018-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多