Когда я отправляю форму, содержимое которой проверяется с помощью express -validator, я получаю сообщение об ошибке «req.checkBody не является функцией» (и если я удаляю строку, которая генерирует это, я получаю другие ошибки, например « req.sanitize не является функцией "). Похоже, express -validator не распознается должным образом, поэтому я подумал об изменении текущей версии, а затем я удалил текущую версию и установил более старую version@5.3.1 все еще. Она показывает ту же ошибку.
Сначала я потребовал его в основном приложении. js file var validator = require('express-validator');
Затем я использовал его для валидации
var User = require('../models/admin');
var LocalStrategy = require('passport-local').Strategy;
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
passport.use('local.signup', new LocalStrategy({
usernameField: 'email',
passwordField: 'password',
passReqToCallback: true,
}, function(req, email, password, done) {
req.checkBody('email', 'Invalid email').notEmpty().isEmail();
req.checkBody('password', 'Invalid password').notEmpty().isLength({min:4});
var errors = req.validationErrors();
if (errors) {
var message = [];
errors.forEach(function(error){
messages.push(error.msg);
});
return done(null, false, req.flash('error', messages));
}
User.findOne({'email' : email}, function(err, user) {
if (err){
return done(err);
}
if (user){
return done(null, false, {message: 'email is already in use'});
}
var newUser = new User();
newUser.email = email;
newUser.password = newUser.encryptPassword(password);
newUser.save(function(err, result) {
if (err) {
return done(err);
}
return done(null, newUser);
});
});
}));
passport.use('local.signin', new LocalStrategy({
usernameField: 'email',
passwordField: 'password',
passReqToCallback: true,
},function (req, email, password, done){
req.checkBody('email', 'Invalid email').notEmpty().isEmail();
req.checkBody('password', 'Invalid password').notEmpty();
var errors = req.validationErrors();
if (errors) {
var message = [];
errors.forEach(function(error){
messages.push(error.msg);
});
return done(null, false, req.flash('error', messages));
}
User.findOne({'email' : email}, function(err, user) {
if (err){
return done(err);
}
if (!user){
return done(null, false, {message: 'No user found!!'});
}
if (!user.validPassword(password)){
return done(null, false, {message: 'Wrong password!!'});
}
return done (null, user);
});
}));```