【问题标题】:use express.bodyParser() and passport.js使用 express.bodyParser() 和 passport.js
【发布时间】:2013-10-31 13:16:57
【问题描述】:

我正在使用 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);

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

【问题讨论】:

    标签: javascript node.js express passport.js


    【解决方案1】:

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

    【讨论】:

    • 非常感谢。有时就是这么简单。我忘记了将数组作为路由处理程序传递的可能性。
    猜你喜欢
    • 1970-01-01
    • 2013-11-17
    • 2013-07-13
    • 2014-03-06
    • 2013-08-13
    • 2014-07-16
    • 2014-03-22
    • 1970-01-01
    • 2015-06-26
    相关资源
    最近更新 更多