【问题标题】:Return data from MongoDB to jade view将数据从 MongoDB 返回到玉视图
【发布时间】:2016-03-30 05:22:10
【问题描述】:

所有部件都几乎就位,但有些东西坏了。我正在尝试将 mongo 集合中的数据传递回翡翠视图,但是翡翠返回以下错误:

TypeError: /Users/rhysedwards/Downloads/insightful/food/views/index.jade:30
    28|       
    29|       #events
  > 30|       each Entry, i in entries
    31|         div.title
    32|         div.url
    33|         div.specificDate

Cannot read property 'length' of undefined

我是否正确调用路由器中的数据库并正确返回数据?如果有人能澄清一下,那就太好了。

路由器:

router.get('/', function(req, res, next){
  var db = req.db;
  var entries = db.get('entries');
  entries.find( function (err, entries) {
    res.render('index', {
      "entries": entries
    });
  });
});

翡翠模板

each entry, i in entries
  div.title
  div.url      
  div.selectedDate

Entries 集合中的数据

{
    "_id" : ObjectId("56fae2731b90abc3793d4f33"),
    "url" : "https://www.residentadvisor.net/event.aspx?801261",
    "title" : "\tRA Tickets: Sneak Every Tuesday at XOYO, London",
    "selectedDate" : "03/09/2016",
    "__v" : 0
}

架构

var Entry = module.exports = mongoose.model('Entry', EntrySchema);

【问题讨论】:

  • 您可以在调用render之前登录(console.direrrentries以检查是否有问题。

标签: javascript node.js mongodb express mongoose


【解决方案1】:

(更新)find()的正确用法不如下吗?

  entries.find({}, function (err, entries) {
    res.render('index', {
      "entries": entries
    });
  });

【讨论】:

  • 两种方式都试过了,entries 在 Jade 中仍然未定义
  • find(callback) 和 find({}, callback) 一样。
  • 我的错!然后你需要检查错误:console.log(err).
猜你喜欢
  • 2016-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
  • 2013-10-28
相关资源
最近更新 更多