繁体   English   中英

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

[英]Form validation and displaying error message using ejs

我是 nodejs 的新手,我正在尝试使用 express js 中的 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 消息

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

发送快闪信息

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

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

当然,在服务器端,您会在访问数据库或任何其他操作之前检查这些值

编写一个具有错误功能和输入验证的 node express EJS 应用程序,如第 11 课所示。 在此应用程序中,您输入成绩列表,并且成绩显示在相应的字母成绩文本框中。 每个成绩表也应该排序。 请参阅下面的示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM