使用express.bodyParser()和passport.js

我正在使用express.js和passport.js在节点服务器上工作。 我处于一个条件,我不想在app.use(passport.initialize())app.use(passport.session())之前使用express.bodyParser() app.use(passport.session()) 。 如果我在两个护照中间件函数之后执行app.use(express.bodyParser()) ,它们会使req-stream混乱,bodyParser不再工作。

我只想在一些特定的路线使用bodyParser,而不是在整个应用程序。 我做了什么来规避这个错误是以下(在每一个我想保护和使用bodyParser路线):

app.post(route, express.json(), passport.initialize(), passport.session(), isAuthenticated, controller);

但是我认为这有点讨厌。 有没有解决办法让它干?

auth.js

 var passport = require('passport'); var express = require('express'); function isAuthenticated(req, res, next) { //... } module.exports = [ express.json(), passport.initialize(), passport.session(), isAuthenticated ]; 

somerouter.js

 app.post(route, require('./auth'), controller);