如何进行MongoDB查询并在局部视图中使用它

时间:2019-02-26 11:48:25

标签: node.js mongodb express mongoose

我在页脚部分中有一个当前使用的事件集,但是,我只想显示日期大于今天的事件。我已经在mongo shell上实现了以下目标:

db.events.find({date: {$gte: new Date()}})

我不明白如何在运行循环以显示事件的页脚局部中使用此查询,我想将此查询保存在我可以在循环中使用的变量中,并且它是可见的在网站的每个页面中都有页脚。

为了能够在每个页面中使用此集合,我正在我的app.js中使用此代码

// passing courses to every EJS template
app.use(function (req, res, next) {

    Event.find({}, function (err, allEvents) {
        if (err) {
            console.log(err);
            res.locals.events = [];
            next();
        } else {
            res.locals.events = allEvents;
            next();
        }
    });
});

这是我在页脚局部进行循环的地方

<div id="event-footer" class="col-12  mt-4 mt-md-5 text-center col-md-4 text-md-left">
  <div class="">
    <h4 class="pb-1 pb-md-5">PROXIMOS EVENTOS</h4>
      <% var count = 0; %>
      <% events.forEach(function(event) { %>
        <% if (count <= 2 ) { %>
          <div class="eventDisplay text-center text-md-left">
            <h6><%=moment(event.date).format('dddd, D MMMM, h:mm a')%></h6>
            <p> <%= event.name %> </p>
          </div>
        <% } %>
      <% count++; }); %>
  </div>
</div>

1 个答案:

答案 0 :(得分:1)

尝试一下...

Event.find({date: {$gte: new Date()}}, function (err, allEvents) { ...