尽我所能遵循此处的文档,但我无法使其正常工作。
server.js
const express = require('express');
const app = express();
app.use(express.json())
app.use('/', index);
index.js
const router = express.Router()
const { check, validationResult } = require('express-validator/check')
router.post('/register', [
check('name').exists()
], function(req, res) {
const validationErrors = validationResult(req)
if (!validationErrors.isEmpty()) {
console.log("validationErrors.array()\n", validationErrors.array())
}
})
为了测试这一点,我name
在客户端中输入了一个有效的,它在req.body
. 可能值得注意的是req.body
具有以下结构:
{ userRegistrationForm:
{ name: 'John Doe',
email: 'john@example.com',
password: '',
gender: '',
birthMonth: 'Month',
birthDate: 'Day',
birthYear: 'Year' } }
文档提到check('username').isEmail(),
,但我不知道'username'
来自哪里,除非默认情况下check()
正在查看该方法。req.body
无论我做什么(意味着我输入了一个有效的名称),我都会不断收到相同的验证错误:
[ { location: 'body',
param: 'name',
value: undefined,
msg: 'Invalid value' } ]
如何正确使用该check()
方法?
更新:
我想我想通了。我修改了我的客户端以传递req.body.name
给服务器(而不是req.body.userRegistrationForm.name
),并且check('name')
在我省略名称时似乎捕获了错误。不过,我想获得有关此问题的反馈。