【问题标题】:How do I send on object from MongoDB to jade?如何将对象从 MongoDB 发送到玉?
【发布时间】:2013-12-27 10:42:22
【问题描述】:

我正在尝试使用我的客户端 JS 访问从 MongoDB 检索的对象。具体来说,我希望能够循环并使用对象中的数组。这是我的服务器端 JS,它成功找到了 results 并将它们记录到终端。

app.get("/post/:id", function (req, res, next) {
  var id = req.param('id');
  var query = BlogPost.findById(id).populate('author');

  BlogPost.find(query, {"answers":"true", "blanks":"true", "_id":0}, function(err, results){

  console.log('Results '+results);//This prints an object like:// { answers: [ 'more', 'One', 'more' ], blanks: ['try']}

  query.exec(function (err, post) {
    if (err) return next(err);
    if (!post) return next(); // 404

    res.render('post/view.jade', { post: post, results: results });
  })
})
})

还有我的玉:

  #luck
   #{results}

然后是我的客户端 JS:

var results = $('#luck').html();
console.log(results.answers[2]);

我通过 console.log 得到undefined,结果打印在页面上。

【问题讨论】:

  • 有时它是一个对象的列表,因此您可以尝试 Object[0].attribute

标签: javascript mongodb express mongoose pug


【解决方案1】:

如果结果打印在屏幕上但你无法遍历对象,那么可能意味着几件事:

1) 对象可能是一个数组,即 results[0].whatever 而不是 results.whatever

2) 对象为字符串形式,需要先调用 JSON.parse(results) 才能遍历

var results = JSON.parse($('#luck').html());
console.log(results.answers[2]);

【讨论】:

    【解决方案2】:

    感谢@Xinzz 的回答,不过这个玉:

    for result in results
         p #{result.answers}
    

    最终为我工作。从这里:Using Jade to iterate JSON

    【讨论】:

      猜你喜欢
      • 2018-02-13
      • 2016-05-21
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 2014-07-02
      • 1970-01-01
      相关资源
      最近更新 更多