簡體   English   中英

有人可以在快遞中解釋REQ嗎?

[英]can someone please explain REQ in express plz

我不明白我們如何在express中使用req 我知道服務器可以響應客戶端,但是當涉及到req時我很困惑。 當服務器向客戶端請求某些東西時是req嗎?

使用快速服務器,您可以將兩個對象傳遞給請求處理程序。

req是有關傳入請求的數據(從客戶端發送的內容)。 它包含請求的標頭,它包含一個解析的查詢字符串,它包含 URL 路徑,通常是 object 中間件放置東西供請求處理程序使用。 While Express adds a bit more to this object, you can see the general concept of the req object by looking and the http.IncomingMessage object documented here . 這就是 object 開始時的內容,然后 Express 添加了更多內容。 此處記錄了 object 的快速版本。

res是響應 object。 這都是關於發送響應的。 它將保存您要隨請求一起發送的出站標頭。 它包含您用於發送響應的方法。 核心 object 是http.ServerResponse object 在此處記錄,然后 Express 在 ZA8CFDE63311C49EB2ACZ66F8 的頂部添加更多內容。

HTTP 是一個應用程序,客戶端-服務器協議。 每當客戶端希望服務器執行操作時,它都必須發出請求。 HTTP 協議定義了一組可供客戶端使用的動作或動詞,因此它可以使用一個特定的動詞(GET、POST、PATCH、PUT、DELETE 等)發出每個請求。 客戶端使用什么動詞無關緊要,只有客戶端可以使用其中一個動詞啟動與服務器的通信。 這就是 HTTP GET 請求的樣子:

 GET / HTTP/1.1
 Host: example.com
 User-Agent: curl/7.69.1
 Accept: */*

第一行包含使用的動詞,在本例中為GET ,請求的路徑在本例中為/ ,以及協議版本,在本例中為HTTP/1.1 接下來的幾行是一組稱為該請求headers的鍵值對,它可以定義客戶端向服務器發出的請求的許多方面。 順便說一句,HTTP 服務器永遠不會也不會向客戶端發起請求,客戶端始終是發出請求的一方,而服務器始終是響應該請求的一方。 例如,該請求的一個方面是目標主機,它存在於 header host中,值為example.com 標題中的波紋管,所有 HTTP 請求都有一個空行,然后是請求的主體,通常包含從客戶端發送到服務器的數據。 在這種情況下,不會在請求中發送任何數據主體。

Express 是一款 HTTP 服務器,基於 Node.js 上的 HTTP 模塊。 Express 簡化了原生 Node.js HTTP 服務器的工作方式。 下面是 Express 應用程序的典型外觀:

const express = require('express');
const app = express();


// This is called a router
app.get('/path', (req, res) => {
    // This router will perform some action with the req object
    // And will send a response to the client 
});

因此,在上面的示例中,Express 應用程序上可用的方法app.get(...)允許服務器處理來自客戶端的 GET 請求。 app.get()方法需要兩個 arguments、一個path和一個回調 function。 path參數表示名稱服務器之后的字符串,例如,在 URL www.example.com/test中,主機名是www.example.com ,路徑是/test 該方法app.get()也稱為Router 因此,該示例的路由器將處理對該服務器的GET請求,該服務器還將/path值定義為請求發送到的路徑。 一旦對服務器的請求符合這兩個條件,就會觸發該回調。

所以,最終我們得到了答案。 res變量是一個 object(一組以逗號分隔並鎖定在大括號中的密鑰對值),其中包含 HTTP 請求的數據,轉換為友好易讀的 ZA8CFDE6331BD59EB2AC96F8911C4B666 例如,如果您想將客戶端使用的路徑打印到控制台,您可以像這樣打印它console.log(req.path) ,或者您可以獲取該 HTTP 請求的所有標頭,您可以使用console.log(req.headers) req是 Express 中的 5 個主要對象之一,事實上,Express 文檔定義了許多可以與請求 object ( req ) 一起使用的方法。 要深入了解請求 object,您可以在此鏈接中查看 Express 官方文檔。 路由器中定義的回調,可以使用req object,提取客戶端請求的信息,進行處理,稍后返回響應給客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM