快速验证器保释功能与开玩笑保释功能冲突

问题描述

我正在尝试使用 express-validator 的保释函数在先前的验证失败时返回验证链实例。但是,保释函数被标识为属于@jest/types 的保释函数。见下图:

IDE description of bail function

当我尝试运行我的代码时,出现以下错误

"C:\Program Files\nodejs\node.exe" C:\dev\Home-Together-Canada\server\bin\www
C:\dev\Home-Together-Canada\server\controllers\validators\userControllerValidator.js:68
        .exists().bail()
                  ^

TypeError: body(...).exists(...).bail is not a function
    at Object.<anonymous> (C:\dev\Home-Together-Canada\server\controllers\validators\userControllerValidator.js:68:19)
    at Module._compile (node:internal/modules/cjs/loader:1083:30)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1112:10)
    at Module.load (node:internal/modules/cjs/loader:948:32)
    at Function.Module._load (node:internal/modules/cjs/loader:789:14)
    at Module.require (node:internal/modules/cjs/loader:972:19)
    at require (node:internal/modules/cjs/helpers:88:18)
    at Object.<anonymous> (C:\dev\Home-Together-Canada\server\routes\businessRoutes.js:17:24)
    at Module._compile (node:internal/modules/cjs/loader:1083:30)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1112:10)
    at Module.load (node:internal/modules/cjs/loader:948:32)
    at Function.Module._load (node:internal/modules/cjs/loader:789:14)
    at Module.require (node:internal/modules/cjs/loader:972:19)
    at require (node:internal/modules/cjs/helpers:88:18)
    at Object.<anonymous> (C:\dev\Home-Together-Canada\server\app.js:11:24)
    at Module._compile (node:internal/modules/cjs/loader:1083:30)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1112:10)
    at Module.load (node:internal/modules/cjs/loader:948:32)
    at Function.Module._load (node:internal/modules/cjs/loader:789:14)
    at Module.require (node:internal/modules/cjs/loader:972:19)
    at require (node:internal/modules/cjs/helpers:88:18)
    at Object.<anonymous> (C:\dev\Home-Together-Canada\server\bin\www:7:11)

我的 packagae.json 文件中有以下内容

{
  "name": "home-together-canada","version": "0.0.0","private": true,"scripts": {
    "start": "node server/bin/www","test": "jest","dev": "concurrently \"set PORT=3001 && npm start\" \" cd client && npm start\"","heroku-postbuild": "cd client && npm install && npm run build"
  },"dependencies": {
    "@turf/boolean-overlap": "^6.3.0","@turf/boolean-point-in-polygon": "^6.3.0","@turf/boolean-within": "^6.3.0","@turf/circle": "^6.3.0","@turf/helpers": "^6.3.0","body-parser": "^1.19.0","cookie-parser": "~1.4.4","cors": "^2.8.5","debug": "~2.6.9","express": "~4.16.1","express-session": "^1.17.1","express-validator": "^5.3.1","hbs": "^4.1.1","http-errors": "~1.6.3","jest": "^26.6.0","json2csv": "^5.0.6","lodash": "^4.17.20","morgan": "~1.9.1","multer": "^1.4.2","MysqL2": "^2.2.5","neat-csv": "^6.0.1","node-geocoder": "^3.27.0","passport": "^0.4.1","passport-local": "^1.0.0","sequelize": "^6.3.5"
  },"jest": {
    "verbose": true,"collectCoverageFrom": [
      "**/*.{js,jsx}","!**/node_modules/**","!**/*.test.js","!**/coverage/**","!**/serviceWorker.js","!**/index.js"
    ],"setupFiles": [
      "<rootDir>/client/src/setupTests.js"
    ],"projects": [
      {
        "displayName": "server","testEnvironment": "node","testMatch": [
          "<rootDir>/server/**/*.test.js"
        ]
      },{
        "displayName": "client","testEnvironment": "jsdom","testMatch": [
          "<rootDir>/client/**/*.test.js"
        ],"modulefileExtensions": [
          "js","json","jsx"
        ],"moduleNameMapper": {
          "\\.(css|less)$": "identity-obj-proxy"
        },"transform": {
          "\\.(js|jsx)$": "babel-jest","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileTransformer.js"
        }
      }
    ]
  },"devDependencies": {
    "@babel/cli": "^7.12.1","@babel/preset-env": "^7.12.1","@babel/preset-react": "^7.12.1","@testing-library/jest-dom": "^5.11.5","concurrently": "^5.3.0","identity-obj-proxy": "^3.0.0"
  }
}

我如何指示 express-validator 使用它自己的保释函数而不是 jest 的?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)