我在mongoosejs中定义了一个模式,如下所示:
var uploadSchema = mongoose.Schema({
title : String,
happy : String,
});
我希望我的数据库中的数据显示在客户端上(我使用ejs进行模板化):
app.get('/yay', function (req, res, next){
Upload.find({}, function (err, course){
res.render('./pages/yay.ejs', {course: course});
});
});
在客户端上显示它:
<div class="well">
<p><%= course %></p>
</div>
但这只是显示带有id,whatWillLearn的整个数据库。我只需要显示标题。我怎样才能做到这一点?我试过这个:
app.get('/yay', function (req, res, next){
Upload.find({}, function (err, course){
res.render('./pages/yay.ejs', {course: course.title});
});
});
但它只是在客户端返回undefined。我该怎么办?
答案 0 :(得分:0)
看起来你正在返回一个数组,但是在传递给render的对象中没有设置正确的变量
尝试一下(这应该得到数组中的第一道菜):
app.get('/yay', function (req, res, next){
Upload.find({}, function (err, courses) {
res.render('./pages/yay.ejs', { happy: courses[0].title });
});
});
如果您没有课程,这将无效。你可能应该遍历你返回的所有课程并将它们打印出来,或者将上传更改为Upload.findOne更改为从数据库中取回1