使用express.bodyParser()和passport.js

时间:2013-10-31 13:16:57

标签: javascript node.js express passport.js

我正在使用express.js和passport.js在节点服务器上工作。我处于一种状态,我不想在express.bodyParser()app.use(passport.initialize())之前使用app.use(passport.session())。如果我在两个护照中间件功能之后执行app.use(express.bodyParser()),它们会使请求流混乱,并且bodyParser不再起作用。

我想仅在几个特定路线中使用bodyParser,而不是在整个应用中。我所做的是为了避免这个错误如下(在我想保护并使用bodyParser的每个路径中):

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

但我认为这有点令人讨厌。是否有解决方案让它干涸?

1 个答案:

答案 0 :(得分:2)

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);