实现一个 http 服务器 客户端会发送请求 GET POST
要处理不同的请求体的类型
- 表单格式(formData
a=1&b=2
),可以直接通信不会出现跨域问题 - JSON (
"{"kaimo":"313"}"
) - 文件格式 (二进制)
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>
输入数据,点击提交
服务端数据
页面变成了数据