node.js - '类型错误: validator is not a function' after installing and requiring express-validator

标签 node.js express-validator

我已经使用 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)

是什么导致了这个问题?

最佳答案

这里是维护者。
您似乎使用的是最新版本。 express-validator v6 has been released几天前,它不再包含所谓的“旧版 API”。

您应该迁移到新的 API(例如,之前位于 express-validator/check 下的 API); the getting started guide * 应该为您提供足够的信息来帮助您解决问题。

例如

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 已经存在几年了。

关于node.js - '类型错误: validator is not a function' after installing and requiring express-validator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56711444/

相关文章:

javascript - Express JS 无法识别环境

node.js - chrome打开wss协议(protocol)时如何解决ERR_DISALLOWED_URL_SCHEME?

node.js - 带 Strongloop 构建包的 Heroku npm 版本

javascript - 如何使用 express-validator 排除其他属性?

javascript - Express-Validator 5.2.0 - 验证对象的通配符数组 - 比较

javascript - 在验证模式中使用 isStrongPassword

javascript - 如果请求体是单个 json 数组,如何验证请求体?

node.js - 如何使用node和hapi在同一端口上运行多个服务器标签?

ajax - Node JS - Express - Mongo DB : posting data with extra square brackets in JSON key

mysql - Express-validator 检查电子邮件是否存在于 MySQL 中