javascript - Node - 类型错误 : validator is not a function

标签 javascript node.js express

我是 Node 新手,正在开发一个项目。我被要求使用 Node.js 创建一个登录页面,一旦我安装了express-validator并在entrypoint.js文件中输入了我想要的代码,它就会在每次运行entrypoint.js时打印出一个错误。

TypeError: validator is not a function
at Object.<anonymous> (E:\BookBasket\entrypoint.js:28:9)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:829:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

这是entrypoint.js的代码,

const express = require("express");
const bodyParser = require("body-parser");
const expressHbs = require ('express-handlebars');
const logger = require('morgan');
const cookieParser = require('cookie-parser');
const session = require('express-session');
const passport = require("passport");
const flash = require("connect-flash");
const validator = require("express-validator");

//Using routes for Routing the pages and API
const routes = require('./routes');
const indexRouter = require('./routes/index');

  //Creating database connection seperately for the development and production server
require('./config/config');
//Passport
require('./config/passport');
//Connect to the database
require('./database/database');

var app = express();

app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(validator());
app.use(cookieParser());
app.use(session({secret: 'mysupersecret', resave: false, saveUninitialized: false}));
app.use(flash());
app.use(passport.initialize());
app.use(passport.session());
//Static Folder Setup like css, javascript

 app.use('/public', function(req, res, next) {
  console.log(req.url);
  next();
 });

app.use('/public', express.static('public'));

//End of static folder setup

还有一件重要的事情:-

我是通过 npm install 安装express-validator

版本 - “express-validator”:“^6.1.0”,

下面是我的 package.json 代码

"dependencies": {
"bcrypt": "^3.0.6",
"bcryptjs": "^2.4.3",
"connect-flash": "^0.1.1",
"cookie-parser": "~1.4.4",
"csurf": "^1.10.0",
"debug": "~2.6.9",
"express": "^4.16.4",
"express-handlebars": "^3.1.0",
"express-session": "^1.16.2",
"express-validator": "^6.1.0",
"hbs": "~4.0.4",
"http-errors": "~1.6.3",
"jsonwebtoken": "^8.5.1",
"mongoose": "^5.6.0",
"morgan": "~1.9.1",
"passport": "^0.4.0",
"passport-local": "^1.0.0",
"validator": "^11.0.0"

最佳答案

这都是关于版本不匹配的!!!

正如我已经提到的,我安装了

version - "express-validator": "^6.1.0",

由于版本不匹配,每次运行entrypoint.js 时都会打印出错误。

TypeError: validator is not a function

我安装了以前版本的express-validator,即

"express-validator": "^3.1.2",

之后它开始正常工作,没有显示任何错误

**

  • 通过以下命令安装以前版本的express-validator:-

**

npm install --save express-validator@3.1.2

关于javascript - Node - 类型错误 : validator is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56810261/

相关文章:

javascript - Nuxt axios无法处理服务器sesponse

javascript - Socket.io 发送到特定客户端

node.js - Knex 迁移不创建表

node.js - 如何使用 .d.ts 文件

javascript - Controller 中需要模块错误

javascript - 最好使用声明或 self 来修改变量

javascript - 如何修复 CSS div 未正确对齐

javascript - Node.js 导出调用 Controller 中的另一个 Controller 方法

javascript - 在 Javascript 中获取带有拆分的数组的最后一个元素

performance - 基准 Nodejs 项目