仅显示客户端上的标题将返回undefined

时间:2015-05-29 20:52:44

标签: javascript mongodb express mongoose ejs

我在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。我该怎么办?

1 个答案:

答案 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