#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() переменную.