如何使用 http 模块处理 GET 和 POST 请求?

推荐答案

-- -------------------- ---- -------
----- ---- - ----------------
----- --- - ---------------
----- ----------- - -----------------------

----- ------ - ----------------------- ---- -- -
  ----- - ------- ---- ------ - - ----
  ----- --------- - ----------------- ------

  -- ------- --- ------ -
    -- -------
    ------------------ - --------------- ------------ ---
    ----------------- -------------------------------------
  - ---- -- ------- --- ------- -
    -- --------
    --- ---- - ---
    -------------- ----- -- -
      ---- -- -----------------
    ---
    ------------- -- -- -
      ----- -------- - ------------------------
      ------------------ - --------------- ------------ ---
      ------------------ ------------------------------
    ---
  - ---- -
    ------------------ - --------------- ------------ ---
    --------------- --- ----------
  -
---

------------------- -- -- -
  ------------------- -------------------------
---

本题详细解读

1. 引入必要的模块

  • http 模块用于创建HTTP服务器。
  • url 模块用于解析URL。
  • querystring 模块用于解析POST请求的请求体。

2. 创建HTTP服务器

  • 使用 http.createServer() 方法创建一个HTTP服务器实例。
  • 回调函数接收 req(请求对象)和 res(响应对象)两个参数。

3. 处理GET请求

  • 通过 req.method 判断请求方法是否为 GET
  • 使用 url.parse() 方法解析请求的URL,获取查询参数。
  • 将查询参数通过 res.end() 方法返回给客户端。

4. 处理POST请求

  • 通过 req.method 判断请求方法是否为 POST
  • 使用 req.on('data') 事件监听器收集请求体数据。
  • 使用 req.on('end') 事件监听器在请求体数据接收完毕后,解析请求体数据。
  • 将解析后的POST请求参数通过 res.end() 方法返回给客户端。

5. 处理其他请求方法

  • 如果请求方法不是 GETPOST,返回 405 Method Not Allowed 状态码。

6. 启动服务器

  • 使用 server.listen() 方法启动服务器,监听指定端口(如3000)。
纠错
反馈