66 # form 数据格式化

实现一个 http 服务器 客户端会发送请求 GET POST

要处理不同的请求体的类型

  1. 表单格式(formData a=1&b=2),可以直接通信不会出现跨域问题
  2. JSON ("{"kaimo":"313"}"
  3. 文件格式 (二进制)
const http = require("http");
const url = require("url");
const querystring = require("querystring");

let server = http.createServer();

server.on("request", (req, res) => {
    let { pathname } = url.parse(req.url);
    if (pathname === "/login" && req.method == "POST") {
        const arr = [];
        req.on("data", (chunk) => {
            arr.push(chunk);
        });
        req.on("end", () => {
            let result = Buffer.concat(arr).toString();
            if (req.headers["content-type"] === "application/x-www-form-urlencoded") {
                let obj = querystring.parse(result, "&", "=");
                console.log(obj);
                res.setHeader("Content-Type", "application/json");
                res.end(JSON.stringify(obj));
            }
        });
    }
});

server.listen(3000);

启动服务

nodemon "66 # form 数据格式化.js"

然后后编写测试 form 数据提交

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>凯小默测试 form 数据格式提交title>
head>

<body>
    <form action="http://localhost:3000/login" method="POST" enctype="application/x-www-form-urlencoded">
        <input type="text" name="username">
        <input type="text" name="password">
        <button type="submit">提交button>
    form>
body>

html>

输入数据,点击提交

66 # form 数据格式化_第1张图片
服务端数据

66 # form 数据格式化_第2张图片

页面变成了数据
66 # form 数据格式化_第3张图片

你可能感兴趣的:(Node,/,Node,框架,前端工程架构,http)