您好,登錄后才能下訂單哦!
本篇內容主要講解“node Express的中間件舉例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“node Express的中間件舉例分析”吧!
Express是一個簡潔而靈活的Web應用程序開發框架,可以用來快速地搭建一個功能完整的Web應用程序;作為一個基于Node.js封裝的上層服務框架,Express提供了更簡潔的API,通過中間件和路由使應用程序的組織管理更加容易。
中間件,就是將請求處理函數進行模塊化分解后的若干子處理函數,一些列子處理函數可以形成一個中間件堆棧;
中間件,是在應用程序的請求-響應周期中能夠訪問請求對象req、響應對象res和next()函數的函數,next()函數主要負責將控制權交給下一個中間件;如果當前中間件沒有終結請求,并且next()沒有被調用,那么請求將被掛起,后面定義的中間件將不會被執行。、
中間件的執行順序,嚴格按照注冊的順序從上到下開始匹配執行。
中間件函數,可以執行以下任務:
執行任何代碼
對請求和響應對象進行修改
終結請求-響應周期
調用堆棧中下一個中間件(next)
中間件的主要用途就是處理HTTP請求,用來完成特定的任務如登錄狀態驗證、請求日志、錯誤處理、Cookie等。
1 應用程序級中間件
使用app.use()函數將應用程序級中間件綁定到應用對象實例上
const app = express(); /*表示匹配任何路由*/ app.use(function(req,res,next){ console.log('請求時間:' + Date.now()); /*表示匹配完成這個中間件就繼續往下執行。*/ next() })
2 路由級中間件
路由級中間件與應用程序級中間件的工作方式相同,只是它被綁定到路由器實例上
import express from 'express'; const app = express(); const router = express.router(); router.use( '/user', function (req, res, next) { console.log(1); next(); }, function (req, res, next) { console.log(2); next(); }, function (rex, res, next) { console.log(3); next(); } );
3 錯誤處理中間件
錯誤處理中間件總是需要4個參數,必須提供4個參數來將其標識為錯誤處理中間件函數。即使不需要next函數,也必須指定它。否則next函數被解釋為常規中間件,并且無法處理錯誤
app.use(function(err, req, res, next){ console.log(err.stack); res.status(500).send(err); })
4 內置中間件
Express具有以下內置中間件:
express.static: 提供靜態資源服務
express.router: 提供路由服務
5 第三方中間件
第三方中間件如body-parser、cookie-parser等
6 自定義中間件
自定義中間件被定義為一個函數,接受req,res,next參數,使用app.use()注冊中間件
function log(req,res,next) { req.requestTime = Date.now(); next() } // 注冊自定義中間件 app.use(log);
// 自定義可配置中間件 function log(options) { return function (req,res,next) { // 根據options實現中間件功能 next } }
到此,相信大家對“node Express的中間件舉例分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。