国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

express.js中間件說明詳解

2024-05-06 15:41:34
字體:
來源:轉載
供稿:網友

express的新開發人員往往對路由處理程序和中間件之間的區別感到困惑。因此他們也對app.use(),app.all(),app.get(),app.post(),app.delete()和app.put()方法的區別感到困惑。

在本文中,我將解釋中間件和路由處理程序之間的區別。以及如何正確使用app.use(),app.all(),app.get(),app.post(),app.delete()和app.put()方法。

路由處理

app.use(),app.all(),app.get(),app.post(),app.delete()和app.put()全部是用來定義路由的。這些方法都用于定義路由。路由用于處理HTTP請求。路由是路徑和回調的組合,在請求的路徑匹配時執行?;卣{被稱為路由處理程序。

它們之間的區別是處理不同類型的HTTP請求。例如: app.get()方法僅僅處理get請求,而app.all()處理GET、POST等請求。

下面是一個例子,如何定義一個路由:

var app = require("express")();app.get("/", function(req, res, next){  res.send("Hello World!!!!");});app.listen(8080);

每個路由處理程序都獲得對當前正在提供的HTTP請求的請求和響應對象的引用。

可以為單個HTTP請求執行多個路由處理程序。這是一個例子:

var app = require("express")();app.get("/", function(req, res, next){  res.write("Hello");  next();});app.get("/", function(req, res, next){  res.write(" World !!!");  res.end();});app.listen(8080);

這里第一個句柄寫入一些響應,然后調用next()。 next()方法用于調用與路徑路徑匹配的下一個路由處理程序。

路由處理程序必須結束請求或調用下一個路由處理程序。

我們還可以將多個路由處理程序傳遞給app.all(),app.get(),app.post(),app.delete()和app.put()方法。

這是一個證明這一點的例子:

var app = require("express")();app.get("/", function(req, res, next){  res.write("Hello");  next();}, function(req, res, next){  res.write(" World !!!");  res.end();});app.listen(8080);

中間件

中間件是一個位于實際請求處理程序之上的回調。它采用與路由處理程序相同的參數。

要了解中間件,我們來看一個帶有dashboard和profile頁面的示例站點。要訪問這些頁面,用戶必須登錄。還會記錄對這些頁面的請求。

以下是這些頁面的路由處理程序的代碼:

var app = require("express")();function checkLogin(){  return false;}function logRequest(){  console.log("New request");}app.get("/dashboard", function(req, res, next){  logRequest();  if(checkLogin()){    res.send("This is the dashboard page");  }  else{    res.send("You are not logged in!!!");  }});app.get("/profile", function(req, res, next){  logRequest();  if(checkLogin()){    res.send("This is the dashboard page");  }  else{    res.send("You are not logged in!!!");  }});app.listen(8080);            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 社旗县| 灵宝市| 正蓝旗| 莫力| 桦川县| 敦化市| 乐都县| 丰台区| 汉中市| 桦甸市| 塔城市| 临漳县| 塔河县| 桂东县| 文昌市| 黎平县| 绥德县| 重庆市| 赤水市| 丹巴县| 珠海市| 通化县| 昌宁县| 河源市| 拉孜县| 通山县| 镇江市| 革吉县| 绥芬河市| 丰都县| 图木舒克市| 富宁县| 阳泉市| 娄烦县| 洪洞县| 调兵山市| 和林格尔县| 莱阳市| 赤水市| 吉首市| 龙南县|