Javascript expressValidator 5.3.1至6.6.0 expressValidator不是一个函数
我正在尝试将express validator 5.3.1更新为6.6.0。我对文档有很多困惑。我试图更新我的代码,但没有成功。我有一个错误,expressValidator不是函数或req.check不是函数。我知道旧的api已经过时了,但我想更新到6.6.0。你能帮我吗,因为我不知道。我尝试了req.checkBody或req.body,但仍然不是函数。多谢各位 app.js:Javascript expressValidator 5.3.1至6.6.0 expressValidator不是一个函数,javascript,node.js,Javascript,Node.js,我正在尝试将express validator 5.3.1更新为6.6.0。我对文档有很多困惑。我试图更新我的代码,但没有成功。我有一个错误,expressValidator不是函数或req.check不是函数。我知道旧的api已经过时了,但我想更新到6.6.0。你能帮我吗,因为我不知道。我尝试了req.checkBody或req.body,但仍然不是函数。多谢各位 app.js: const express = require("express"); const mongo
const express = require("express");
const mongoose = require("mongoose");
const morgan = require("morgan");
const bodyParser = require("body-parser");
const cookieParser = require("cookie-parser");
const expressValidator = require("express-validator");
require('dotenv').config();
// import routes
const userRoutes = require('./routes/user');
//app
const app = express();
//db connection
mongoose.connect(process.env.DATABASE, {
useNewUrlParser:true,
useCreateIndex:true
}).then(() => console.log('Database Connected'));
//middlewares
app.use(morgan('dev'));
app.use(bodyParser.json());
app.use(cookieParser());
app.use(expressValidator());
//routes middleware
app.use("/api",userRoutes);
const port = process.env.PORT || 8000
app.listen(port, () =>{
console.log(`Server is running on port ${port}`)
});
/验证器/index.js
exports.userSignupValidator = (req, res, next) => {
req.check('name', 'Name is required').notEmpty();
req.check('email', 'Email must be between 3 to 32 characters')
.matches(/.+\@.+\..+/)
.withMessage('Email must contain @')
.isLength({
min: 4, max: 32
});
req.check('password', 'Password is required').notEmpty();
req.check('password').isLength({min: 6})
.withMessage('Password must contain at least 6 characters')
.matches(/\d/)
.withMessage('Password must contain a number');
const errors = req.validationErrors()
if(errors) {
const firstError = errors.map(error => error.msg)[0]
return res.status(400).json({error: firstError});
}
next();
};
routes/user.js
const express = require("express");
const router = express.Router();
const {signup} = require("../controllers/user");
const {userSignupValidator} = require('../validator');
router.post("/signup", userSignupValidator, signup);
module.exports = router;
试试这个-
const expressValidator=require(“expressValidator”)代码>和app.use(expressValidator())代码>
const{check}=require('express-validator')代码>。使用check
代替req.check
const{validationResult}=require('express-validator')代码>以获取验证结果
要获得更好的图片,您可以访问我的存储库非常感谢,它正在工作。verfy Well:)非常感谢。@SergioA很乐意提供帮助。如果答案真的对你有帮助,请投票表决。