繁体   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