我是node和mongodb的新手,我正在尝试在模板中呈现数据库查询,但是我得到了属性未定义的错误:
Cannot read property 'firstname' of undefined
这是我的index.js文件:
var dburl = 'localhost/olpdb';
var collections = ['users'];
var db = require('mongojs').connect(dburl, collections);
var currentUsers = db.users.find();
exports.index = function(req, res){
res.render('index', currentUsers);
};
在index.jade模板中,我得到了:
#{currentUsers.firstname}
我已经分别查询了数据库并知道有记录:
> db.users.find()
{ "firstname" : "andy", "lastname" : "johnson", "email" : "andy@johnson.com", "_id" : ObjectId("51adf8a8c58996cf0c000001") }
任何人都可以帮助我解决我做错的事吗?我试图将对象传递给模板,以便我可以提取数据。
答案 0 :(得分:0)
在您的代码中,currentUsers
可能是API对象(查询或类似对象)。要使用查询的结果,您需要使用回调:
exports.index = function(req, res){
db.users.find(function(err, currentUsers) {
res.render('index', {
currentUsers: currentUsers
});
});
};
现在您可以使用Jade模板中的currentUsers
数组:
#{currentUsers[0].firstName}