Проверка формы и отображение сообщения об ошибке с помощью ejs - PullRequest
0 голосов
/ 15 сентября 2018

Я новичок в nodejs и пытаюсь проверить свою форму, используя шаблон ejs в экспрессе js. Как я могу проверить записи формы, а также отобразить сообщение об ошибке в случае сбоя проверки?

Вот мой код сервера:

app.post('/formsubmit', function(req, res) 
    {
            console.log(req.body);
            var name =req.body.name;
            var email=req.body.email;
            var pwd =req.body.pwd;
            var age =req.body.age;

            var con = mysql.createConnection
                ({
                      host: "localhost",
                      user: "root",
                      password: "",
                      database: "demos"
                });

            con.connect(function(err) {
            if (err) throw err;
              console.log("Connected!");
              var sql = "INSERT INTO student (name, email,age) VALUES ('"+name+"','"+email+"','"+age+"')";
              con.query(sql, function (err, result) 
                {
                    if (err) throw err;
                     console.log("1 record inserted");
              });
            });             

        //console.log(record);
            res.send('Record Inserted Successfully');

}); 

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

вы должны сначала обработать это на стороне клиента, поэтому, если клиент нажал кнопку отправки, вы должны проверить, что все в порядке (все обязательные поля заполнены, по-видимому, правильными значениями (дата, адрес электронной почты, номер телефона и т. Д.)..)) затем вы отправляете данные на сервер.

EJS не имеет ничего общего с проверкой формы, он обрабатывается в браузере с использованием jQuery или обычного JS.

Конечно, на стороне серверавы проверяете эти значения перед доступом к базе данных или любым другим действием

0 голосов
/ 15 сентября 2018

Вы можете проверить форму, используя экспресс-валидатор, и отправлять флеш-сообщения, используя connect-flash.

const { check, validationResult } = require('express-validator/check');

app.post('/formsubmit', [check('title').not().isEmpty(),
                    check('content').not().isEmpty(),
                    check('title').not().isEmpty(),
                    check('content').not().isEmpty()]
                    ,function(req, res) {

            const errors = validationResult(req);
            if (!errors.isEmpty()) {
                req.flash('error', "Provide details for the blog");
                res.redirect('/notes');
            }
            else
            {
                //perform required operation
                res.send();
            }

}); 

Добавьте их в свой app.js

var flash = require('connect-flash');
app.use(flash()); // flash messages

app.use(function (req, res, next) {
    res.locals.success = req.flash('success');
    res.locals.info = req.flash('info');
    res.locals.error = req.flash('error');
    res.locals.user = req.user || null;
    next();
  });

Перейдите по этой ссылке, чтобы узнатьо экспресс-валидаторе и флеш-сообщениях

https://express -validator.github.io / docs /

отправка флеш-сообщений в экспресс

...