Javascript 表单验证和使用ejs显示错误消息

Javascript 表单验证和使用ejs显示错误消息,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我是nodejs新手,我正在尝试使用expressjs中的ejs模板验证我的表单。如果验证失败,如何验证表单条目并显示错误消息 这是我的服务器代码: app.post('/formsubmit', function(req, res) { console.log(req.body); var name =req.body.name; var email=req.body.email; var

我是nodejs新手,我正在尝试使用expressjs中的ejs模板验证我的表单。如果验证失败,如何验证表单条目并显示错误消息

这是我的服务器代码:

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');

}); 

您可以使用express validator验证表单,并使用connect flash发送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();
  });
请参阅此链接以了解express validator和flash消息


您必须首先在客户端处理此问题,因此如果客户端单击“提交”按钮,您必须检查是否一切正常(所有必填字段都填写了明显正确的值(日期、电子邮件、电话号码等)) 然后将数据发送到服务器

EJS与表单验证无关,它是在浏览器上使用jQuery或纯JS处理的


当然,在服务器端,您在访问数据库或任何其他操作之前都会检查这些值。首先,您需要清理输入(不允许任何XSS攻击)。电子邮件-使用正则表达式检查,年龄-检查是否是数字,pwd是否存储为字符串,姓名-检查是否没有任何脚本标记等-在谷歌搜索或搜索stackoverflow后,您可以找到所有这些内容。:)你的问题太宽泛了。您需要添加更多详细信息,如验证哪些字段以及基于哪些字段?需求?长度?例如-这是一个与使用正则表达式进行电子邮件验证相关的好线程:@AnkitAgarwal:我只想如果我提交空白表单,那么会显示错误消息,我如何将错误传递给视图(ejs)和显示错误?@sheetaldhiman我建议您查看此消息