Моя переменная 'errors' в шаблоне ejs вызывает ошибку 'undefined' при загрузке страницы - PullRequest
0 голосов
/ 31 декабря 2018

Моя переменная 'errors' в шаблоне ejs вызывает ошибку 'undefined' при загрузке страницы

У меня есть шаблон ejs для контактной формы с кодом для вывода ошибок через флеш-сообщения на страницу, когда формане заполнен должным образом или заполнен полностью.

<%- messages('message', locals) %>

    <% if (errors !== undefined) { %>
    // Output the errors to the page
    <% errors.forEach(function(error) { %>
        <div class="alert alert-danger">
            <%= error.message %>
        </div>
    <% }) %>
<% } %>

Код в моем файле app.js создает переменную 'errors'.

let errors = req.validationResult();

if (errors) {
    res.render('contact-form', {
        errors: errors
    });

Для чего стоит 'messages.ejs'шаблон содержит следующий код:

<div id="messages">
<% Object.keys(messages).forEach(function (type) { %>
    <div class="alert alert-<%= type %>">
    <% messages[type].forEach(function (message) { %>
        <p><%= message %></p>
    <% }) %>
    </div>
<% }) %>
</div>

Строка:

<% if (errors !== undefined) { %>

из шаблона contact-form.ejs выдает ошибку «ошибки не определены».

1 Ответ

0 голосов
/ 31 декабря 2018

Я предполагаю, что "неопределенная ошибка" относится к errors.forEach.Результат validationResult() - это не массив ошибок, это объект с геттерами, такими как isEmpty() и array(), поэтому вам может потребоваться немного изменить код контроллера.

Проверьте документы для некоторых примеров.

...