即使回滚到5.3.1后也会引发相同的错误,“ TypeError:req.valdationErrors不是函数”

问题描述

在Node.js基本Web API中使用express-validator时

在CMD中

Visual representation of CMD error given below

C:\ Users \ Naman \ Node_React \ nodeapi \ app.js:31 * app.use(expressValidator()); * ^ TypeError:expressValidator不是函数 在对象。 (C:\ Users \ Naman \ Node_React \ nodeapi \ app.js:31:9) 在Module._compile(内部/模块/cjs/loader.js:1137:30) 在Object.Module._extensions..js(内部/模块/cjs/loader.js:1157:10) 在Module.load(internal / modules / cjs / loader.js:985:32) 在Function.Module._load(内部/模块/cjs/loader.js:878:14) 在Function.executeUserEntryPoint [作为runMain](内部/模块/run_main.js:71:12) 在internal / main / run_main_module.js:17:47 [nodemon]应用程序崩溃-等待文件更改,然后再开始...

在深入探讨主题之后,建议对回滚版本的“ express-validator”提出一些答案 我做了然后回滚到 "express-validator": "^5.3.1",

CMD screenshot after rolling back to version 5.3.1

现在我陷入了另一个问题 当我在POSTMAN上运行POST方法以检查错误检查功能是否正常工作时

CMD Error after rolling back to 5.3.1 POSTMAN error output

我仅将此函数称为2个文件,而

nodeapi/app.js

nodeapi/controllers/post.js

和文件

  1. nodeapi / controllers / post.js
const Post = require('../models/post');
const { Result } = require('express-validator');


exports.getPosts = (req,res) => {
    res.json({
        posts : [
            {title: 'First Post'},{title: 'Second post'}
        ]
    });
};

exports.createPost = (req,res) => {
    const post = new Post(req.body);
    post.save().then(result => {
        res.status(200).json({
            post: result
        });
    });
};
  1. nodeapi / app.js
const express = require('express');
const app = express();
const morgan = require("morgan");
const dotenv = require('dotenv');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const expressValidator = require('express-validator');
dotenv.config();

//DB

// This one also works Don't know HOW !!!
//const { MongoClient } = require("mongodb");
// const client = MongoClient.connect(process.env.MONGO_URI,{ useNewUrlParser: true,useUnifiedTopology: true },//     console.log('DB Connected Succesfully'));
//OR
mongoose.connect(process.env.MONGO_URI,useUnifiedTopology: true})
   .then(() => console.log('DB Connectded Succesfully'));

mongoose.connection.on("error",err => {
    console.log(`DB Connection Error:,${err.message}`);
});

// Bringing Routes
const postRoutes = require('./routes/post')


//Middleware
app.use(morgan('dev'));
app.use(bodyParser.json());
app.use(expressValidator());
app.use("/",postRoutes);


const port = process.env.PORT || 8080;
app.listen(port,() => {
    console.log(`A Node Js API is listening on port : ${port}`);
});

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...