![](/img/trans.png)
[英]Displaying server side validation error message on a bootstrapped ejs form
[英]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 消息
您必须首先在客户端处理此问题,因此如果客户端单击提交按钮,您必须检查它一切正常(所有必填字段都填写了明显正确的值(日期,电子邮件,电话号码,...))然后将数据发送到服务器。
EJS 与表单验证无关,它是在浏览器上使用 jQuery 或普通 JS 处理的。
当然,在服务器端,您会在访问数据库或任何其他操作之前检查这些值
编写一个具有错误功能和输入验证的 node express EJS 应用程序,如第 11 课所示。 在此应用程序中,您输入成绩列表,并且成绩显示在相应的字母成绩文本框中。 每个成绩表也应该排序。 请参阅下面的示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.