ReferenceError: validateResult не определен для приложения MERN - PullRequest
0 голосов
/ 11 июня 2019

Я работаю над приложением MERN и пытаюсь вызвать экспресс-валидатор, но по какой-то причине я получаю справочную ошибку.

Буду очень признателен за любую помощь в этом!

const router = express.Router();
const { check, validationResult } = require('express-validator/check');

// @route   POST api/users
// @desc    Register user
// @access  Public
router.post(
  '/',
  [
    check('name', 'Name is required')
      .not()
      .isEmpty(),
    check('email', 'Please include a valid email').isEmail(),
    check(
      'password',
      'Please enter a password with 6 or more charcters'
    ).isLength({ min: 6 })
  ],
  (req, res) => {
    /* req.body is body of data that will be sent to the route, must init middleware in server.js */
    const errors = validateResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    }

    res.send('User route');
  }
);

module.exports = router;

А вот и сообщение об ошибке:

ReferenceError: validateResult is not defined
    at router.post (C:\Users\Kelvin Yu\Documents\Day Zero\devconnector\routes\api\users.js:22:20)
    at Layer.handle [as handle_request] (C:\Users\Kelvin Yu\Documents\Day Zero\devconnector\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\Kelvin Yu\Documents\Day Zero\devconnector\node_modules\express\lib\router\route.js:137:13)
    at runner.then.errors (C:\Users\Kelvin Yu\Documents\Day Zero\devconnector\node_modules\express-validator\check\check.js:16:7)
    at process._tickCallback (internal/process/next_tick.js:68:7)

1 Ответ

0 голосов
/ 11 июня 2019

Эта строка

const errors = validateResult(req);

должно быть

const errors = validationResult(req);

Когда вы импортировали express-validate, вы импортировали не функцию с именем validateResult, а функцию с именем validationResult:

const { check, validationResult } = require('express-validator/check');
...