Javascript 表单验证和使用ejs显示错误消息
我是nodejs新手,我正在尝试使用expressjs中的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
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我建议您查看此消息