我在Node.js项目中使用了建议的快速验证器V4语法:
const { check, validationResult } = require('express-validator/check');
const { matchedData } = require('express-validator/filter');
和
app.post('/users/add/',[
check('first_name')
.isLength({ min: 1 }).withMessage('A first name is required')],
(req, res, next) => {
var errors = validationResult(req);
if (errors) {
..etc
请注意,我使用的是现代语法,并且没有以下代码(如 根据express-validator README.md文件):
const expressValidator = require('express-validator');
app.use(expressValidator());
如何在运行验证之前从输入字段修剪空格?
答案 0 :(得分:2)
您应该在.trim()
之前使用.check()
,
check('first_name').trim().isLength({ min: 1 }).withMessage('A first name is required')]
希望这有帮助!
答案 1 :(得分:0)
以下工作可能有所帮助,但我认为最好的解决方案是以流利的方式支持卫生。我的工作的缺点是输入的处理现在在两个地方。
将所需的卫生功能添加到require子句:
const { trim } = require('express-validator').validator
调整请求处理:
app.post('/users/add/',
(req, res, next) => {
req.body.first_name = trim(req.body.first_name);
req.body.last_name = trim(req.body.last_name);
req.body.email = trim(req.body.email);
next();
},
[check('first_name')
.isLength({ min: 1 }).withMessage('A first name is required')],
(req, res, next) => {
var errors = validationResult(req);
if (errors) {
..etc