1. 程式人生 > >Middleware / 中間件

Middleware / 中間件

context module 開啟 image ext key src return 後置

中間件格式

module.exports = options => {
  return (ctx, next) => {
    // do something
  }
}

中間件格式為一個高階函數,外部的函數接收一個 options 參數,這樣方便中間件提供一些配置信息,用來開啟/關閉一些功能。執行後返回另一個函數,這個函數接收 ctx, next 參數,其中 ctxcontext 的簡寫,是當前請求生命周期的一個對象,存儲了當前請求的一些相關信息,next 為調用後續的中間件,返回值是 Promise,這樣可以很方便的處理後置邏輯。

整個中間件執行過程是個洋蔥模型,類似下面這張圖:

技術分享

Middleware / 中間件