我正在使用express.js和passport.js开发 Node 服务器。我的情况是,我不想在 app.use(passport.initialize())
和 之前使用
。如果我在两个 Passport 中间件函数之后执行 express.bodyParser()
>app.use(passport.session())app.use(express.bodyParser())
,它们会弄乱 req-stream 并且 bodyParser 不再工作。
我只想在几个特定的路由中使用 bodyParser,而不是在整个应用程序中。我为避免此错误所做的操作如下(在我想要保护并使用 bodyParser 的每条 route ):
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);
关于javascript - 使用express.bodyParser()和passport.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19707568/