«TypeError: валидатор не является функцией» после установки и требует экспресс-валидатор - PullRequest
0 голосов
/ 22 июня 2019

Я установил экспресс-валидатор с npm install express-validator --save и потребовал его в моем app.js.Однако когда я запускаю npm start, терминал говорит, что это не функция.

В моем app.js:

var validator = require("express-validator");
app.use(validator());

В моих зависимостях package.json:

"express-validator": "^6.0.1"

Ответ от терминала:

app.use(validator());
        ^

TypeError: validator is not a function
    at Object.<anonymous> (/mnt/e/CODING/Templates/leaftunehoney/SC2/app.js:30:9)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/mnt/e/CODING/Templates/leaftunehoney/SC2/bin/www:7:11)`    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)

В чем причина проблемы?

Ответы [ 3 ]

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

connect-flash не требуется до validator.

var validator = require("express-validator");
app.use(validator());

после

app.use(require('connect-flash')());
0 голосов
/ 23 июня 2019

Сопровождающий здесь.
Вы, похоже, используете последнюю версию. express-validator v6 был выпущен несколько дней назад и больше не включает в себя то, что называлось «устаревшим API».

Вы должны перейти на новые API (то, что раньше былоexpress-validator/check, например); Руководство по началу работы * должно дать вам достаточно информации, чтобы помочь с этим.

Например,

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

app.post('/user', [
  check('username').isEmail(),
  check('password').isLength({ min: 5 })
], (req, res) => {
  const errors = validationResult(req);
  if (!errors.isEmpty()) {
    return res.status(422).json({ errors: errors.array() });
  }

  // create/update the user however you want?
});

* На данный момент нет официальных руководств по миграции, поскольку новый API существует уже несколько лет.

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

express-validator не является функцией и способ ее использования: app.use(validator()); неверен, проверьте документы ниже:

https://express -validator.github.io / docs /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...