TypeError: expressValidator не является функцией - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь выполнить проверки с использованием express validator

Мое приложение. js, как показано ниже

//importing the express
const express=require('express');
//initializing the express
const app=express();
const morgan=require('morgan');
const bodyparser = require('body-parser');
const mongoose = require('mongoose');
const expressValidator = require('express-validator');

//mongoose.connect("mongodb://localhost:8080/mern",{useNewUrlParser: true,useUnifiedTopology: true});

const postroutes=require('./routes/postsroute');
app.use(morgan('dev'));
app.use(bodyparser.json());
mongoose.connect("mongodb://localhost:27017/mern",{ useNewUrlParser: true,useUnifiedTopology: true}, (err) => {
    if(err) console.log(err);
    else console.log("connected to mongodb");

});
app.use('/api',postroutes);
app.use(expressValidator());
app.listen('3030',() => {
   console.log("listening to port 3030");
});

Мой express код валидатора, как показано ниже (который добавляется в отдельные валидаторы файлов. js)

    const { check, validationResult } = require('express-validator');
exports.createostsvalidator=(req,res,next) =>{
    check('title',"title cannot be empty").notEmpty();
    check('title',"Title must be between 2 to 10").isLength({min:2,max:10});

    check("body","Body cannot be empty").notEmpty();
    check("body","Body should be min 5 and max 100 chars").isLength({min : 5,max:100});

    const errors = req.validationerrors();

    if(errors){
        const firsterror = errors.map((error)=> error.msg)[0];
        return res.status(400).json({error : firsterror});
    }
    next();
};

Мой маршрут такой, как показано ниже

router.post('/createpost',validators.createostsvalidator,createpost);

Может ли кто-нибудь помочь с этим, что можно сделать

1 Ответ

0 голосов
/ 04 марта 2020

Последняя версия express-validator не работает с app.use.

Вам нужно использовать ее следующим образом

const { check, validationResult } = require('express-validator');

// in your route defintion
app.post('/user', [check('title',"title cannot be empty").notEmpty()], (req, res, next) => {});

см. эту тему для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...