Чтение mongodb в шаблон HBS (руль)
Я пытаюсь отобразить данные из моего сервера mongodb в шаблон hbs, пытаясь портировать через этот учебник. Я не получаю никаких ошибок из журналов сервера или консоли в браузере, но я не получаю никаких данных, представленных в шаблоне. Интересно, что он генерирует HTML-разметку. Пожалуйста, помогите мне увидеть проблему.
* Примечание с использованием экспресс-фреймворка (и все еще обучения)
app.js:
app.post("/", function(req, res){
res.render("default", {title:"posts", entries:myRoute.getBlogEntries()});
});
myRoute.js:
exports.getBlogEntries = function(res) {
mongo.connect("mongodb://localhost:27017/myDB", function(err, db){
if(err) { return console.dir(err); }
var collection = db.collection("posts");
collection.find({},{},function(e,docs){
res.render("default", {
"entries" : docs
});
});
});
};
шаблон hbs:
{{#each entries}}
<form method="POST">
<div class="well">
<div class="row">
<div class="col-md-1">
<div>
<button type="submit" value="{{_id}}" class="btn btn-lrg btn-primary" name="voteup" title="Vote post up"><span class="glyphicon glyphicon-thumbs-up"></span></button>
</div>
<div style="text-align:center;padding-right:5px;padding-top:7px;padding-bottom:7px;"><span class="badge">{{voteCount}}</span></div>
<div>
<button type="submit" value="{{_id}}" class="btn btn-lrg btn-danger" name="votedown" title="Vote post down"><span class="glyphicon glyphicon-thumbs-down"></span></button>
</div>
</div>
<div class="col-md-10">
<h4>{{title}}</h4>
<label style="font-weight:normal;font-style:italic">Posted: {{published}}</label>
<div>
{{body}}
</div>
</div>
</div>
</div>
</form>
{{/each}}
Заранее спасибо!
1 ответ
Я предполагаю, что вы используете драйвер mongodb, который вы не указали.
collection.find
возвращает курсор mongodb, а не массив документов. Вы можете использовать toArray, чтобы получить документы:
collection.find().toArray(function(e,docs){
...
}
Я предлагаю вам прочитать документацию библиотеки перед ее использованием, потому что вы просто можете догадаться, что делает API.