我正在尝试安装和使用express-validator软件包。我已经安装了软件包版本(6.10.0),代码是:
app.js
const express = require("express");
const app = express();
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const expressValidator = require("express-validator");
const dotenv = require("dotenv");
dotenv.config();
mongoose
.connect(process.env.MONGO_URI, { useNewUrlParser: true })
.then(() => console.log("DB Connected"));
mongoose.connection.on("error", err => {
console.log(`DB connection error ${err.message}`);
});
const postRoutes = require("./routes/post");
app.use(bodyParser.json());
app.use(expressValidator());
app.use("/", postRoutes);
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`A Node Js API is listening on poty: ${port}`);
});
我收到此错误:
TypeError: expressValidator is not a function
答案 0 :(得分:0)
就我而言,这是版本问题。首先卸载当前版本,然后安装支持app.use(expressValidator())的旧版本;句法 暗示: 卸载以前的版本:npm卸载express-validator
安装旧版本:npm install express-validator@5.3.1
答案 1 :(得分:0)
我也面临着同样的问题。 经过少量研究,我发现我正在使用6.x版。
新版本的规则已更改[app.use(expressValidator());]
语法不再受支持。我建议您将版本降级到5.x。
npm uninstall express-validator
npm install express-validator@5.3.1
答案 2 :(得分:-1)
我也面临着同样的问题。经过一点研究,我发现我正在使用 版本6.x 。新版本的规则已更改[app.use(expressValidator());] 不再支持语法。我建议您将版本降级到5.x。它 为我工作。
降级:
第一:-卸载express-validator:npm uninstall express-validator
第二:-重新安装早期版本:npm install express-validator@5.3.1