错误:TypeError('app.use()需要中间件函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误:TypeError('app.use()需要中间件函数相关的知识,希望对你有一定的参考价值。

我刚刚开始学习Node Js并且正在尝试下面的代码,但是这里有一些错误而且它正在抛出错误。有类似的问题可用,但无法弄清楚这有什么问题。

const express = require('express');
var app = express();
const path = require('path');
const PORT = process.env.PORT || 5000;
const logger = require('./middleware/logger')
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const helmet = require('helmet');
const passport = require('passport');
var securedRoutes = express.Router();


//set static folder
app.use(express.static(path.join(__dirname,'public')));

securedRoutes.get('/',(req,res) => {
    res.send('Test!!!Vmal');
})

//Init middleware
app.use(logger);
app.use(helmet());
app.use(helmet.contentSecurityPolicy({
    directives: {
      defaultSrc: ["'self'"]
    }
}));

app.use(passport);
app.use(cookieParser());
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true,parameterLimit:50000}));
app.listen(PORT,() => console.log(`server started on port ${PORT}`));
module.exports = app;

错误:抛出新的TypeError('app.use()需要一个中间件函数')^ TypeError:app.use()需要一个中间件函数。

有人可以帮忙吗。谢谢

答案

由于您使用passport模块,因此在从app引用时必须对其进行初始化。

来自npm文档https://www.npmjs.com/package/passport

...
app.use(passport.initialize());
app.use(cookieParser());
...

以上是关于错误:TypeError('app.use()需要中间件函数的主要内容,如果未能解决你的问题,请参考以下文章

typeerror: app.use() 需要中间件函数

Vue3 & app.use 与 install 函数的作用

nodejs:app.use处理post请求

ActionScript 3.0和'TypeError:错误#1034:类型强制失败'

app.get('/')在网站打开时没有被调用

由于 MIME 类型错误而拒绝应用样式