共计 1492 个字符,预计需要花费 4 分钟才能阅读完成。
一、GET 申请
- 获取数据;
- 数据放在 url 中进行传输;
- 容量小:<32K;
思路:
- 创立 html 表单,前端提交信息给服务端(url?username=xxx&password=xxx);
- 引入 url 模块,通过 url.parse(request.url, true) 获取 json 数据。
demo1.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> 演示 1 </title>
</head>
<body>
<form action="http://localhost:8088/login" method="GET">
用户名:<input type="text" name="username"><br>
密 码:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
index.js:
let http = require('http')
let url = require('url')
http.createServer((req, res) => {let { pathname, query} = url.parse(req.url, true)
console.log(pathname, query);
}).listen(8088)
运行命令:
node index
关上页面,在表单输出数据,输入后果:
/login[Object: null prototype] {username: 'admin', password: '123456'}
二、POST 申请
- 数据放在 body 中进行传输;
- 容量大:<2G;
思路:引入 querystring 模块,创立数组获取 buffer 多段数据并用 concat 拼接,querystring.parse(data) 获取 json。
demo1.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> 演示 1 </title>
</head>
<body>
<form action="http://localhost:8088/login" method="POST">
用户名:<input type="text" name="username"><br>
密 码:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
index.js:
let http = require('http')
let querystring = require('querystring')
http.createServer((req, res) => {let result = [];
//Node.js 中定义了 Buffer 类,专门用来寄存二进制数据的缓存区
req.on('data', (buffer) => {result.push(buffer);
})
req.on('end', () => {
// 因为是成段获取,所以要拼接起来
let data = Buffer.concat(result).toString() // 这种不能用于图片视频等文件
console.log(querystring.parse(data))
})
}).listen(8088)
运行命令:
node index
关上页面,在表单输出数据,输入后果:
[Object: null prototype] {username: 'admin', password: '123456'}
正文完
发表至: javascript
2021-02-26