Javascript ReferenceError:未定义expressValidator Express、ejs、Nodejs
我正在尝试使用Express和node制作验证表单。我对这一切都很陌生,我的控制台中出现了这个错误 ReferenceError:未定义expressValidator index.js代码Javascript ReferenceError:未定义expressValidator Express、ejs、Nodejs,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我正在尝试使用Express和node制作验证表单。我对这一切都很陌生,我的控制台中出现了这个错误 ReferenceError:未定义expressValidator index.js代码 var express = require('express'), bodyParser = require('body-parser'), validator = require('express-validator'), routes = require('./routes'), path =
var express = require('express'),
bodyParser = require('body-parser'),
validator = require('express-validator'),
routes = require('./routes'),
path = require('path'),
ejs = require('ejs'),
app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(expressValidator());
//post
app.post('/signup', routes.registerUser);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.set('view options', {layout: false});
//get
app.get('/', routes.index);
app.get('/signup', routes.signup);
app.get('/login', routes.login);
app.listen(3000,function(){
console.log("Server running at Port 3000");
});
在routes文件夹中,我只有一个js文件index.js
exports.index = function(req, res){
res.render('index');
};
exports.signup = function(req, res){
res.render('signup');
};
exports.login = function(req, res){
res.render('index');
};
exports.registerUser = function(req, res){
req.check('uname', 'Username is required').notEmpty();
req.check('fname', 'First name is required').notEmpty();
req.check('lname', 'Last name is required').notEmpty();
req.check('email', 'Email is required').notEmpty();
req.check('mob', 'Mobile Number is required').notEmpty();
req.check('add', 'Address is required').notEmpty();
req.check('city', 'City is required').notEmpty();
req.check('url', 'URL is required').notEmpty();
req.check('pcode', 'PIN code is required').notEmpty();
req.check('password', 'Password is required').notEmpty();
var errors = req.validationErrors();
if(errors){
console.log("There may be errors");
res.redirect('signup');
}else{
var uname = req.body.uname;
var user = {
'fname' : req.body.uname,
'lname' : req.body.lname,
'email' : req.body.email,
'mob' : req.body.mob,
'add' : req.body.add,
'url' : req.body.url,
'pcode' : req.body.pcode,
'password' : req.body.password
};
}
};
当我运行应用程序时,每次都会收到这个消息
app.use(expressValidator());
^
ReferenceError:未定义expressValidator
改变
到
你能告诉我为什么
app.use(expressValidator())代码>它不起作用。因为您没有定义expressValidator,所以您将expressValidator作为validator而不是expressValidator导入:validator=require('express-validator')
var errors=req.validationErrors()代码>这行有什么问题吗?我收到错误console.log(“可能有错误”)代码>。在填写表格时,我要确保并没有字段是空的。尽量不要一次检查这么多字段。首先测试一个,然后尝试console.log(错误)以查看问题的具体内容。客户端可能存在问题。您使用表单提交还是ajax post?您可以使用postman先调试服务器端,然后修复客户端。当您调试客户端时,请使用chrome dev工具或类似工具在网络中查找post请求,并检查是否已成功附加参数。
app.use(expressValidator());
app.use(validator());