【问题标题】:Error: TypeError('app.use() requires a middleware function错误:TypeError('app.use() 需要中间件函数
【发布时间】:2019-04-20 20:23:12
【问题描述】:

我是 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;

Error : throw new TypeError('app.use() 需要一个中间件函数') ^TypeError: app.use() 需要一个中间件函数。

有人可以帮忙吗。谢谢

【问题讨论】:

  • 哪一行报错?如果未指明,请尝试评论每个 app.use 以查看哪个引发错误
  • 来自 app.use(passport);它正在抛出错误。
  • 查看答案
  • 仍然得到相同的错误.app.use(passport.initialize()); app.use(护照); app.use(cookieParser());在这个的第二行
  • 你应该删除app.use(passport)这一行

标签: javascript node.js express monodevelop router


【解决方案1】:

由于您使用passport 模块,您必须在从应用程序引用时初始化它。

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

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

【讨论】:

    猜你喜欢
    • 2015-10-17
    • 2018-01-06
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    相关资源
    最近更新 更多