Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js ';类型错误:验证程序不是函数';在安装并需要express validator之后_Node.js_Express Validator - Fatal编程技术网

Node.js ';类型错误:验证程序不是函数';在安装并需要express validator之后

Node.js ';类型错误:验证程序不是函数';在安装并需要express validator之后,node.js,express-validator,Node.js,Express Validator,我已使用npm install express validator安装了express validator--save并在我的app.js中需要它。然而,当我运行npm start时,终端说它不是一个函数 在我的app.js中: var validator = require("express-validator"); app.use(validator()); 在my package.json依赖项中: "express-validator": "^6.0.1" 终端的响应: app.us

我已使用npm install express validator安装了express validator--save并在我的
app.js
中需要它。然而,当我运行
npm start
时,终端说它不是一个函数

在我的app.js中:

var validator = require("express-validator");
app.use(validator());
在my 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)
app.use(validator());
^
TypeError:验证程序不是函数
反对。(/mnt/e/CODING/Templates/leaftuneyne/SC2/app.js:30:9)
编译(Module.js:652:30)
在Object.Module.\u extensions..js(Module.js:663:10)
在Module.load(Module.js:565:32)
在tryModuleLoad时(module.js:505:12)
在Function.Module.\u加载(Module.js:497:3)
at Module.require(Module.js:596:17)
根据需要(内部/module.js:11:18)
反对。(/mnt/e/CODING/Templates/leaftuneyne/SC2/bin/www:7:11)`at Module._compile(Module.js:652:30)
在Object.Module.\u extensions..js(Module.js:663:10)
在Module.load(Module.js:565:32)
在tryModuleLoad时(module.js:505:12)
在Function.Module.\u加载(Module.js:497:3)
位于Function.Module.runMain(Module.js:693:10)
启动时(bootstrap_node.js:188:16)

问题的原因是什么?

快速验证器
不是一个函数,也不是您使用它的方式:
app.use(validator())不正确,请检查以下文档:


在验证程序
之前,不需要连接闪存

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

这里是维护者。
您似乎正在使用最新版本。几天前,它不再包括所谓的“遗留API”

您应该迁移到新的API(例如,以前在
express validator/check
下的API);*应该给你足够的信息来帮助你

例如

*目前还没有官方的迁移指南,因为新的API已经存在了几年

app.use(require('connect-flash')());
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?
});