Jade没有从JSON对象中读取数字元素

时间:2013-10-20 16:44:59

标签: javascript json node.js mongodb express

我目前有一个数据库(Mongoose),其架构定义为:

var CommentTableSchema = new mongoose.Schema({

    name: String,
    body: String,
    parentCommentID: String,
    depth: Number, // the depth of the comment to which it is nested.
});
CommentTableSchema.set('collection', 'comment');

我通过执行以下操作在数据库中保存新评论:

var comment = mongoose.model('comment', CommentTableSchema);
        var currentComment = new comment({name: request.body.name, body: request.body.comment, parentCommentID: "" , depth: 1});
        currentComment.save(function (err, currentComment) {
            if (err) {
                console.log("saving error : " + currentComment);
            }
            else {
                console.log("saved!");
            }
        });

我将comment.find的结果传递给了我的home.jade文件。在jade文件中,我有以下几行(commentsTable是comment.find

的结果
-each comment in commentsTable
    div
        -console.log("comment depth: " + comment.depth)
        if comment.hasOwnProperty('depth') 
            |has depth
        else
            |no depth

这会在我的浏览器页面上输出“无深度”。但是,行-console.log("comment depth: " + comment.depth)在我的终端上给出了以下输出:

comment depth: 1
comment depth: 1
comment depth: 1

这是预料之中的。为什么玉不能读我的depth成员?我在home.jade文件中访问comment.namecomment.bodycomment._id没有问题。

1 个答案:

答案 0 :(得分:1)

在此回调中

currentComment.save(function (err, currentComment)

currentComment是一个猫鼬文档对象

听起来你想要的是简单的结果,而不是猫鼬包裹的结果

我建议您在将对象传递给模型之前调用http://mongoosejs.com/docs/api.html#document_Document-toObject中引用的函数Document#toObject([options])

在类似情况下,您应该在执行查找操作时查看选项lean。指定时,mongoose返回非包装对象。

ex:http://mongoosejs.com/docs/api.html#model_Model.findById