因此,我的应用程序中有类别和文章,需要在此处进行分类。但是我不了解的是将它们放入数组然后显示给他们,因为我对数组了解不多。 第一次尝试就是这样
router.get("/", (req, res, next) => {
var load = 0;
Category.find({}, function(err, category) {
for (var i= 0; i < category.length; i ++){
Article.find({"category": category[i].title}).sort({"date": -1}).exec(function(err, articles) {
load ++;
articles = articles.slice(0, 3);
if(load === category.length) {
res.render("index", { categories: category, articles: articles});
}
});
}
});
});
这是我的index.hbs文件
{{#each categories}}
<div class="category">
<a href="/category/{{this._id}}">{{this.title}}</a>
</div>
{{#each ../articles}}
<div class="row">
{{#ifEquals ../this.title this.category}}
<div class="col-sm-4 col-md-4">
<div class="card">
<img class="card-img-top" src="images/sport.jpg" alt="..." class="img-responsive">
<div class="card-body">
<h5 class="card-title">{{this.title}}</h5>
<p class="card-text">{{this.descript}}</p>
<div>
{{this.time}}
<a href="/articles/{{this._id}}" class="btn btn-success float-right">View Article</a>
</div>
</div>
</div>
</div>
{{/ifEquals}}
</div>
{{/each}}
{{/each}}
第二次尝试是
router.get("/", (req, res, next) => {
var artikli = [];
var load = 0;
Category.find({}, function(err, category) {
for (var i= 0; i < category.length; i ++){
Article.find({"category": category[i].title}).sort({"date": -1}).exec(function(err, articles) {
load ++;
articles = articles.slice(0, 3);
artikli.push(articles);
console.log(load);
if(load === category.length) {
res.render("index", { categories: category, articles: artikli});
}
});
}
});
});
{{# each articles }}
<div class="row">
{{# each this }}
<div class="col-sm-6 col-md-2">
<div class="card">
<img class="card-img-top" src="images/tech.jpg" alt="..." class="img-responsive">
<div class="card-body">
<h5 class="card-title">{{this.title}}</h5>
<p class="card-text">{{this.descript}}</p>
<div>
{{this.date}}
<a href="/articles/{{this._id}}" class="btn btn-success float-right">View Article</a>
</div>
</div>
</div>
</div>
{{/each}}
</div>
{{/each}}
如您所见,我第一次尝试将其排序正确,但第一类中缺少文章,第二次我将其全部获得,但我不知道如何像第一类那样将它们放在其类别之后。因此,由于对数组的了解不足,我陷入了困境。如果有人可以提出解决此问题的正确方法,我将不胜感激。