Express 中間件

Express 是個功能極簡,完全是由路由和中間件構成一個的web開發(fā)框架:從本質(zhì)上來說,一個Express應用就是在調(diào)用各種中間件

中間件是一個函數(shù),它可以訪問請求對象,響應對象,和web應用中處于請求-響應循環(huán)流程中的中間件,一般被命名為next的變量
中間件的功能包括:

  • 執(zhí)行任何代碼。
  • 修改請求和響應對象。
  • 終結請求-響應循環(huán)
  • 調(diào)用堆棧中的下個中間件。
應用級中間件

應用級中間件綁定到app對象app.use()和app.METHOD(),其中METHOD是需要處理的HTTP請求的方法。

路由級中間件

路由級中間件和應用級中間件一樣,只是它綁定的對象為exress.Router().

var router = express.Router();
錯誤處理中間件

錯誤處理中間件和其他中間件定義類似,只是要使用4個參數(shù),而不是3個,其簽名如下:(err,req,res,next).

app.use(function(err,req,res,next){
      console.error(err.stack);
      res.status(500).send('Something broke!');
})
內(nèi)置中間件 express.static(root,[options])

express.static是express唯一內(nèi)置的中間件。它基于server-static,負責在Express應用中提托管靜態(tài)資源
參數(shù)root提供靜態(tài)資源的根目錄。
可選的options參數(shù)擁有如下屬性

  • dotfiles:是否對外輸出文件名以點(.)開頭的文件??蛇x值為“allow”、“deny”和“ignore”
  • etag:是否啟用etag生成
  • extensions:設置文件擴展名備份選項
  • index:發(fā)送目錄索引文件,設置為false禁用目錄索引。
  • lastModified:設置Last-Modified頭為文件在操作系統(tǒng)上的最后修改日趨。可能值為true或false。
  • maxAge:以毫秒或者其字符串格式設置Cache-Control頭的max-age屬性
  • redirec:當路徑為目錄時,重定向至"/"。
  • setHeaders:設置HTTP頭以提供文件的函數(shù)
var options = {
      dotfiles: 'ignore',
      etag:false,
      extensions:['htm','html'],
      index:false,
      maxAge:'id',
      redirect:false,
      setHeaders:function(res,path,stat){
            res.set('x.timestamp',Date.now());
      }
}
app.use(express,static('public',options));

第三方中間件
通過npm 安裝第三方中間件

$ npm install cookie-parser

var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');
///加載用于解析cookie的中間件
app.use(cookieParser());
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容