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

时间:2020-09-05 14:44:55

标签: javascript node.js mongodb postman express-validator

在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, { useNewUrlParser: true, 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}`);
});

0 个答案:

没有答案