为什么Jade没有显示日期值?

时间:2014-03-30 12:55:10

标签: javascript node.js pug

Jade模板是:

block content
    h1= title
    div.container
        if notes
            each item in notes
                div
                    h3 Date: #{item.date}
                    p=item.content
        else
            div No notes

但是,只有titleitem.content呈现,item.date只会呈现空<h3>标记。传递给Jade的对象是:

{
 'title': 'Notes', 
 'notes': [{"content":"A note","date":"2014-03-30T12:03:50.096Z"}]
}

我从哪来得到:

mongoose.connect('mongodb://localhost/notes');
var db = mongoose.connection;
db.on('error', function(err) {
    console.log('Error in connecting to MongoDb: ' + err);
});
db.once('open', function() {
    Notes
        .find()
        .select('-_id')
        .exec(function(err, retrievedNotes) {
        console.log(JSON.stringify(retrievedNotes));
        res.render('index', {'title': 'Notes', 'notes': retrievedNotes});
        mongoose.disconnect();
    });
});

但仅限:

<h1>Notes</h1>
<div class="container">
    <div>
        <h3>Date: </h3>
        <p>A note</p>
    </div>
</div>

呈现。

2 个答案:

答案 0 :(得分:0)

我认为您在打开数据库连接和启动服务器时遇到了一些问题。以下代码对我很有用。

app.get('/', function(req, res) {
Notes
    .find()
    .select('-_id')
    .exec(function(err, retrievedNotes) {
        console.log(JSON.stringify(retrievedNotes));
        res.render('index', {
            'title': 'Notes',
            'notes': retrievedNotes
        });
    });

});

db.once('open', function() {
   console.log('connected to db')
   http.createServer(app).listen(app.get('port'), function() {
       console.log('Express server listening on port ' + app.get('port'));
   });
});

此外,当您关闭服务器时应该mongoose.disconnect();,因为如果您在路由处理程序中断开连接,那么您将无法处理其他请求,因为您打开了db连接只有一次。

答案 1 :(得分:0)

我意识到这是因为我在数据库架构中创建的字段是dateCreated而不是date!我所要做的就是将#{item.date}更改为#{item.dateCreated}