【问题标题】:firebase functions chain middlewarefirebase 函数链中间件
【发布时间】:2018-08-12 17:27:49
【问题描述】:

有没有办法在“普通”firebase 函数上链接中间件,比如 express ?

普通”函数

addNote = https.onRequest((req, res, next) => {
 addNote(req, res,next);
});


使用 express 我链接了 isAuthenticated 并验证中间件
app.post("addNote", isAuthenticated, validate, (req, res, next) => {
  addNote(req, res, next);
 }
);

【问题讨论】:

    标签: firebase google-cloud-functions


    【解决方案1】:

    您可以自动应用 express 中间件的唯一方法是为端点(或端点集合)创建一个 Express 应用程序并将中间件应用到它。然后,该快速应用程序可以使用 Cloud Functions for Firebase 处理 HTTP 端点。例如:

    const cookieParser = require('cookie-parser')();
    const cors = require('cors')({origin: true});
    const app = express();
    
    app.use(cors);
    app.use(cookieParser);
    
    app.get('/hello', (req, res) => {
      res.send(`Hello ${req.user.name}`);
    });
    
    exports.app = functions.https.onRequest(app);
    

    现在 /hello 函数由 Cloud Functions 提供服务,并应用了 cors 和 cookie-parser 中间件。

    取自this sample的代码段。

    【讨论】:

      【解决方案2】:

      这是一个简单的单处理函数 (reference answer)

      const applyMiddleware = handler => (req, res) => {
        return middleware1(req, res, () => {
          return handler(req, res)
        })
      }
      exports.handler = functions.https.onRequest(applyMiddleware(handler))
      

      【讨论】:

        猜你喜欢
        • 2021-12-28
        • 1970-01-01
        • 2020-12-07
        • 2021-06-10
        • 1970-01-01
        • 2018-06-19
        • 1970-01-01
        • 2019-06-02
        • 2020-04-15
        相关资源
        最近更新 更多