在节点 8.11.1 中,我安装了 express 4.16.3
"express-messages" : "*",
"connect-flash" : "*",
"express-validator" : "*",
"express-session" : "*"
我有一个获取所有文章的页面,app.get('/', function(req, res){....
还有一个“新建”按钮,用于添加新文章。当点击 New 时,会出现一个弹出的 Bootstrap 表单。
我想检查空的表单字段。我检查的 HTML 表单字段是
<input type="text" name="name" id="name" class="form-control" />
表单的操作转到
const { check, validationResult } = require('express-validator/check');
app.post('/add', [check('name').exists()],
function(req, res) {
const errors = validationResult(req);
console.log(errors.isEmpty());
if (!errors.isEmpty()) {
req.flash('err', 'errors'); //test
res.redirect('/');
}
else {
pool.connect(function(err, client, done) {
if (err) {
return console.log('db connect error '+ err);
}
client.query('insert into event (name) values($1)',
[req.body.name]);
done();
req.flash('success', 'saved');
res.redirect('/');
}); //pool connect
}//else
});
我立足于此。无论我做什么,console.log(errors.isEmpty());
总是正确的,所以我最终保存到我的数据库空字段。那么,express-validator 不会捕获错误吗?
另外,我不确定如何errors
在路由中传递后面/
,所以可以呈现错误,这就是我req.flash('err', 'errors');
现在只使用的原因。我是否将req.flash
like 用于成功部分?
请帮我调试一下。谢谢