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
但是,只有title
和item.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>
呈现。
答案 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}
。