2

Express.jsとpassport.jsを使用してノードサーバーに取り組んでいます。express.bodyParser()beforeapp.use(passport.initialize())とを使いたくない状態ですapp.use(passport.session())。2 つのパスポート ミドルウェア関数の後にa を実行するapp.use(express.bodyParser())と、req-stream が台無しになり、bodyParser が機能しなくなります。

アプリ全体ではなく、いくつかの特定のルートでのみ bodyParser を使用したいと考えています。このエラーを回避するために私がしたことは次のとおりです(bodyParserを保護して使用するすべてのルートで):

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

でも、それはちょっと嫌なことだと思います。DRYに保つ解決策はありますか?

4

1 に答える 1

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);
于 2013-10-31T13:48:51.987 に答える