【问题标题】:Mongoose: display results of find() as a tableMongoose:将 find() 的结果显示为表格
【发布时间】:2014-02-21 07:53:19
【问题描述】:

我正在寻找一个非常简单的示例,说明如何获取此代码的输出并将其转换为可以通过 Jade 显示的 HTML。

var server1 = Server.find({},
            function(err, docs) {
            if (!err){ 
               console.log(docs);
                      }
            else { throw err;}
            }
    );
 res.render('servers', { title: 'verify', results: server1});
}

我的玉模板包含这个:

table
  each result in results
    tr
      td= result.name
      td= result.os

但是,我收到此错误:无法读取未定义的属性“名称”

如果我只尝试“结果”,我会得到看起来像 MongoDB 设置的转储。

当我加载页面时,我的 console.log 看起来像这样,所以我知道我正在从数据库中提取虚拟数据,但我无法让它在 Jade 中显示:

{ osVersion: 'gbgbgb', 操作系统:'bgbgbgb', 名称:'bgbgbgbgb', _id: 52e1574c10abec5571b99be2, __v: 0, 许可证:[], createdOn: Thu Jan 23 2014 12:54:20 GMT-0500 (EST) }, { osVersion: 'h', 操作系统:'h', 名称:'h', _id: 52e15e5510abec5571b99be3, __v: 0, 许可证:[], 创建时间:2014 年 1 月 23 日星期四 13:24:21 GMT-0500 (EST) }

【问题讨论】:

    标签: mongoose


    【解决方案1】:

    这似乎工作得很好

    exports.index = function(req, res){
      Server.find({},
        function(err, docs) {
          if (!err){ 
              res.render('servers', { title: 'verify', results: docs});
          }
          else { throw err;}
        }
      );
    }
    

    然后我的 Jade 文件看起来像这样:

      table
        each result in results
          tr
            td #{result.name}
            td #{result.os}
            td #{result.createdOn}
    

    【讨论】:

      【解决方案2】:

      您需要从回调函数内部调用res.render

      var server1 = Server.find({},
              function(err, docs) {
              if (!err){ 
                  res.render('servers', { title: 'verify', results: docs });
                        }
              else { throw err;}
              }
      
      );
      

      Server.find()的返回值不是查询的结果,查询的结果是传给回调函数的。

      关于查询的 Mongoose 文档页面 (http://mongoosejs.com/docs/queries.html) 有很多很好的 find() 函数示例。

      【讨论】:

      • 感谢您的解释。 mongoosejs.com 文档似乎针对的是对 JavaScript 有丰富经验的人。不幸的是,那不是我。
      猜你喜欢
      • 2013-09-27
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 2013-03-28
      相关资源
      最近更新 更多