我正在寻找一个非常简单的示例,说明如何获取此代码的输出并将其转换为可以通过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
但是,我收到此错误:无法读取未定义的属性'name'
如果我尝试'结果',我会得到看起来像MongoDB设置的转储。
当我加载页面时,我的console.log看起来像这样,所以我知道我从数据库中提取虚拟数据但是我无法在Jade中显示它:
{osVersion:'gbgbgb', os:'bgbgbgb', 名称:'bgbgbgbgb', _id:52e1574c10abec5571b99be2, __v:0, 许可证:[], createdOn:Thu Jan 23 2014 12:54:20 GMT-0500(EST)}, {osVersion:'h', os:'h', 名称:'h', _id:52e15e5510abec5571b99be3, __v:0, 许可证:[], createdOn:2014年1月23日星期四13:24:21 GMT-0500(EST)}
答案 0 :(得分:1)
您需要从回调函数中调用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()
函数的好例子。
答案 1 :(得分:0)
这似乎运作得相当不错
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}