Узел без выражения с использованием ejs: «Ошибка ссылки: растения не определены»

#node.js #api #express #ejs

#node.js #API #экспресс #ejs

Вопрос:

Я получаю эту ошибку при загрузке своего представления .ejs:

 ReferenceError: plants is not defined
 

Все мои другие представления работают с включениями и тому подобным.

plants.js маршрутизатор:

 router.get('/plants', plantsController.getPlantsPage);
 

plants.js контроллер:

 const Plant = require('../models/plant');

exports.getPlantsPage = (req, res, next) => {
    res.render('plants', {
        plants: plants,
        pageTitle: 'Plants',
        path: '/plants',
        hasPlants: plants.length > 0
    });
};
 

plant.js модель:

 module.exports = class Plant {
    constructor(common_name, image_url, scientific_name) {
        this.common_name = common_name;
        this.image_url = image_url;
        this.scientific_name = scientific_name;
    }
}
 

растения.ejs:

 <% if (hasPlants) { %>
                <% for (let plant of plants) { %>
            <div class="col s12 m4">
                    <div class="card">
                        <div class="card-image waves-effect waves-block waves-light">
                          <img class="activator" src="<%= plant.image_url %>">
                        </div>
                        <div class="card-content">
                          <span class="card-title activator grey-text text-darken-4"><%= plant.common_name %><i class="material-icons right">MORE</i></span>
                        </div>
                        <div class="card-reveal">
                          <span class="card-title grey-text text-darken-4"><%= plant.common_name %><i class="material-icons right">CLOSE</i></span>
                          <p><%= plant.scientific_name %></p>
                          <p><a href="/plant-details/<%= plant.id %>">Plant Details</a></p>
                        </div>
                    </div>
            </div>
            <% } %>
            <% } else { %>
                <div class="row">
                    <div class="col s12">
                        <p>No Plants Added!</p>
                    </div>
                </div>
            <% } %>
 

Спасибо.

Комментарии:

1. вы убедились, что установили plants переменную? Ошибка говорит plants , что не определено. Попробуйте console.log() переменную

2. Спасибо! Я чувствую себя глупо. Решается путем добавления const plants = []; в мой контроллер.

Ответ №1:

Вы убедились, что установили переменную plants? Ошибка говорит, что растения не определены. Попробуйте console.log() переменную.