Переменная ошибки проверки экспресс-валидатора, выдающая «неопределенную» ошибку при загрузке страницы - PullRequest
0 голосов
/ 03 января 2019

Я работаю над формой контакта и использую экспресс-валидатор для валидации.Я пытаюсь обработать ошибки, и это мой код в файле app.js (соответствующий фрагмент):

// CREATE (POST) ROUTE - add new prospect to the DB
app.post('/contact', [
check('firstName', 'Please enter at least one letter').not().isEmpty().trim().escape(),
check('lastName', 'Please enter at least one letter').not().isEmpty().trim().escape(),
check('emailAddress', 'Please enter a valid email address').isEmail().normalizeEmail(),
check('message', 'Please enter at least one letter').not().isEmpty().trim().escape()
], (req, res) => {

// GET AND SANITIZE DATA
var firstname = req.sanitize(req.body.firstName);
var lastname = req.sanitize(req.body.lastName);
var emailaddress = req.sanitize(req.body.emailAddress);
var message = req.sanitize(req.body.message);
var newProspect = { firstName: firstname, lastName: lastname, emailAddress: emailaddress, phoneNumber: phonenumber, message: message };

// HANDLE FORM VALIDATION ERRORS
const errors = validationResult(req);
if(!errors.isEmpty()) {
    console.log(errors.array());
    return res.status(422).render('contact-form', {
        errorMessage: errors.array()[0].msg
    });
}

Чтобы вывести ошибки в браузер, в моем контакте есть следующее:Файл form.ejs чуть выше фактического div формы:

<% if(errorMessage) { %>
    <div class="user-message user-message--error"><%= errorMessage %></div>
<% } %>

Когда я загружаю маршрут для контактной формы, я получаю следующую ошибку:

ReferenceError: /home/ubuntu/workspace/views/contact-form.ejs:13
    11|<p class="lead">Fill out the form below and we will respond as soon as possible.

    12|</p>

 >> 13|<% if(errorMessage) { %>

    14|<div class="user-message user-message--error"><%= errorMessage %></div>

    15|<% } %>

    16|<div class="form">


errorMessage is not defined  

Я знаю, что ячто-то здесь упущено, но, по признанию моей неопытности, для меня просто не так очевидно, что именно.

Может быть, лучше задать вопрос, в чем подвох при использовании переменной 'errorMessage' из моего приложения.js в моем шаблоне contact-form.ejs эффективно и успешно, чтобы я не получил ошибку 'undefined'?

1 Ответ

0 голосов
/ 03 января 2019

Я думаю, что у вас может быть проблема с объемом.Где объявлена ​​переменная errorMessage?Либо ваш код в кавычках не показывает, где это находится, либо он неявно объявлен внутри структуры управления !errors.isEmpty, и в этом случае он недоступен для глобальной области видимости, а переменная errorMessage, которую вы вызываете позже, действительно не определена.
Я не могу протестировать с кодом, который вы включили, но, сталкиваясь с подобными проблемами в прошлом, я обнаружил, что проблема заключалась в этом.Надеюсь, это тоже здесь, и вы можете быть на пути к решению.Если нет, отправьте сообщение снова, и мы попробуем еще раз посмотреть :).HTH - Филипп

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...