javascript - “req.checkBody 不是函数”?
问题描述
当我提交使用 express-validator 验证其内容的表单时,我不断收到错误“req.checkBody 不是一个函数”(如果我删除生成它的行,我会收到其他错误,例如“req.sanitize is not一个函数”)。似乎 express-validator 没有被正确识别,所以我想更改当前版本,然后我卸载了当前版本并安装了旧版本@5.3.1 仍然显示相同的错误。
首先我在 app.js 主文件中需要它
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);
});
}));```
解决方案
推荐阅读
- kernel-module - 在 dpkg 中为模块构建指定内核头依赖项
- c# - 如何使用设备 tiffsep1 和其他分离色为每种分离色设置半色调(sethalftone)?
- python - 雅虎财经网络爬虫
- angularjs - 在 ng-click throghing 错误时在角度 1 动态选择下拉列表中设置已选择的值 - TypeError: selectize.setValue is not a function
- javascript - 为什么我的所有条目都没有执行我的云功能
- android - 兼容不同分辨率/英寸
- angular - 我将如何使用 RXJS 实现“延迟执行计时器”
- javascript - Charts.js 如何在单击条形图时添加链接?
- java - 如何修复 Android 图像捕获应用程序崩溃
- mysql - Docker 无法通过套接字连接到本地 MySQL 服务器