сделал все возможное, чтобы следовать документам здесь , но я не могу заставить это работать.
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')
, кажется, ловит ошибку, когда я опускаю имя.Тем не менее, я хотел бы получить отзыв по этому вопросу.