javascript - 使用express.bodyParser()和passport.js

标签 javascript node.js express passport.js

我正在使用express.js和passport.js开发 Node 服务器。我的情况是,我不想在 app.use(passport.initialize()) 之前使用 express.bodyParser() >app.use(passport.session())。如果我在两个 Passport 中间件函数之后执行 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/

相关文章:

javascript - 需要 set Interval 中使用快速排序逻辑的答案

javascript - 是否有可能捕捉到 webRTC 流视频分辨率的变化?

javascript - 在 Webpack 中构建 dist 文件夹后,如何将 bundle.js 和 css 文件移动到 statics 文件夹中?

node.js - 让 NodeJS 与 VS2015 一起工作

node.js - 如何区分expressjs中的两个POST调用?

node.js - NodeJS + Express : How to secure a URL

javascript - Bootstrap 折叠一个元素

javascript - Gulp - 将 vendor 发布到文件夹

javascript - 使用 jquery 动态设置位置

node.js - 如何从express/node应用程序在 ".localhost"上设置cookie,以便可以从 "something.localhost"访问它