如何在页脚中定义变量

时间:2019-01-14 19:32:46

标签: html node.js express ejs

在应用程序的页脚(显示在每个页面中)中,我有一个事件列表,例如:

下一个事件: 名称'''(course.name)''' 日期'''(course.date)''' 我正在创建一个for循环

<h4 class="pb-1 pb-md-5">PROXIMOS EVENTOS</h4>
<% for (var i = 0; i < 3; i++) { %>
    <div class="eventDisplay text-center text-md-left">
        <p></p>
        <h6><i class="fas fa-calendar-alt"></i> <%= course.date%></h6>
        <p> <%= course.name %> </p>
        <p class="pFooter">Actualizate con nuestros</p>
        <a href="#">Saber mas <i class="fas fa-angle-right"></i></a>
    </div>
<% }; %>

但我一直认为该课程没有定义。如何定义课程,以便用户每次创建新课程时,都可以提取该信息并在我的课程页面和页脚中使用它?

在渲染方面,外观如下:

// ROOT ROUTE
// shows landing page
router.get("/", function(req, res){
// get all courses from DB
Course.find({}, function(err, allCourses){
    if(err){
        console.log(err);
    } else {
        res.render("landing", {courses:allCourses});
    }
});
});

我正在使用EJS作为引擎。

网站在这里:https://pure-cove-85477.herokuapp.com/

1 个答案:

答案 0 :(得分:0)

我想您有一个对象数组。 course未定义,因此您必须将courses与索引一起使用。试试这个

<% for (var i = 0; i < 3; i++) { %>
    <div class="eventDisplay text-center text-md-left">
        <p></p>
        <h6><i class="fas fa-calendar-alt"></i> <%= courses[i].date%></h6>
        <p> <%= courses[i].name %> </p>
        <p class="pFooter">Actualizate con nuestros</p>
        <a href="#">Saber mas <i class="fas fa-angle-right"></i></a>
    </div>
<% }; %>



如果要在ejs标记中使用“课程”,则必须使用forEach循环。例如:

<% courses.forEach(course => { %>
    <div class="eventDisplay text-center text-md-left">
        <p></p>
        <h6><i class="fas fa-calendar-alt"></i> <%= course.date%></h6>
        <p> <%= course.name %> </p>
        <p class="pFooter">Actualizate con nuestros</p>
        <a href="#">Saber mas <i class="fas fa-angle-right"></i></a>
    </div>
<% }); %>