Как показать ошибки каждого поля ввода, используя nodejs с экспресс-валидатором? - PullRequest
0 голосов
/ 27 февраля 2019

Этот вопрос уже задавался, но это не решило мою проблему.

Я новичок в Nodejs.Я пытался проверить форму при вставке данных.

Здесь используется express-validator, сообщения об ошибках, показывающие верхнюю часть form.

Это мое сообщение об ошибке:

enter image description here

Но я хочу, чтобы он отображался под каждым полем ввода

Это мой код

.pug:

form(action="/admin/add_employee", method="POST")
    .form-group
        label.col-form-label First Name
        input.form-control(type="text", name="first_name", placeholder="Enter employee first name")
        div(style='color:red') #{errFirstName}
    .form-group
        label.col-form-label Last Name
        input.form-control(type="text", name="last_name", placeholder="Enter employee last name")
        div(style='color:red') #{errLastName}
    .form-group
        label.col-form-label Email
        input.form-control(type="email", name="email", placeholder="Enter employee email id")
    .form-group
        label.col-form-label Phone
        input.form-control(type="text", name="phone", placeholder="Enter employee phone")
    .form-group
        label.col-form-label Address
        textarea.form-control(type="text", name="address", placeholder="Enter employee address")
    input.btn.btn-primary(type="submit", name="save", value="Save Employee")

.js:

router.post('/add_employee', function(req, res){
    const first_name = req.body.first_name;
    const last_name = req.body.last_name;
    const email = req.body.email;
    const phone = req.body.phone;
    const address = req.body.address;

    req.checkBody('first_name', 'Please enter employee first name').notEmpty();
    req.checkBody('last_name', 'Please enter employee last name').notEmpty();
    req.checkBody('email', 'Please enter employee email').notEmpty();
    req.checkBody('email', 'Invalid Email id').isEmail();
    req.checkBody('phone', 'Please enter employee phone').notEmpty();
    req.checkBody('address', 'Please enter employee address').notEmpty();

    let errors = req.validationErrors();

    if(errors)
    {
        res.render('emp_add', {
            errors: errors
        });
    }
    else
    {
        let employee_data = Employee();
        employee_data.first_name = first_name;
        employee_data.fast_name = last_name;
        employee_data.email = email;
        employee_data.phone = phone;
        employee_data.address = address;
        employee_data.status = 1;

        console.log(employee_data);
        employee_data.save(function(err){
            if(err)
            {
                console.log(err);
                return;
            }
            else
            {

                req.flash('success', 'Employee added successfully');
                res.redirect('employee_list');
            }
        });
    }
});

Я хочу показать сообщение об ошибке под текстовым полем

1 Ответ

0 голосов
/ 27 февраля 2019

Ошибка, которую вы получаете при проверке, является массивом.

Для первого сообщения об ошибке используйте -

errors[0].msg

Одно предложение, хотя вы можете использовать следующую библиотеку для добавления проверок в интерфейса также - Библиотека Эта библиотека настраиваемая и потрясающая.

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