use express.bodyParser() and passport.js

use express.bodyParser() and passport.js

本文关键字:and passport js express bodyParser use      更新时间:2023-09-26

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

我只想在几个特定的路由中使用bodyParser,而不是在整个应用程序中使用。我为规避此错误所做的工作如下(在我想要保护和使用 bodyParser的每个路由中):

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

但我认为这有点讨厌。有没有办法保持干燥?

身份验证.js

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

某路由器.js

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