nodejs 实现 get、post 请求

2023-05-11  本文已影响0人  暴躁程序员

1. 新建 http.js

const http = require("http");
const querystring = require("querystring");

const server = http.createServer((req, res) => {
  // 获取请求的参数:method、path、query
  const { method, url } = req;
  const path = url.split("?")[0];
  const query = querystring.parse(url.split("?")[1]);

  // 设置返回数据格式
  res.setHeader("Content-type", "application/json");

  // 定义返回的数据
  const resData = {
    method,
    url,
    path,
    query,
    message: method === "GET" ? "hello get" : "hello post",
  };

  // 模拟 get 请求
  if (method === "GET") {
    res.end(JSON.stringify(resData));
  }

  // 模拟 post 请求
  if (method === "POST") {
    let postData = "";
    req.on("data", (chunk) => {
      postData += chunk.toString();
    });
    req.on("end", () => {
      res.end(JSON.stringify(resData));
    });
  }
});

// 监听端口
server.listen(8000);
console.log("http server OK");

2. 测试 get 请求

  1. 在当前终端执行
node http.js
  1. 在浏览器输入
http://localhost:8000/api/user/manage?id=1

结果

{
    "method": "GET",
    "url": "/api/user/manage?id=1",
    "path": "/api/user/manage",
    "query": {
        "id": "1"
    },
    "message": "hello get"
}

3. 测试 post 请求

  1. 在当前终端执行
node http.js
  1. 在 postman 接口测试工具中定义 post 接口,请求路径输入
http://localhost:8000/api/login/manage?id=1

结果

{
    "method": "POST",
    "url": "/api/login/manage?id=1",
    "path": "/api/login/manage",
    "query": {
        "id": "1"
    },
    "message": "hello post"
}
上一篇下一篇

猜你喜欢

热点阅读