一、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' }
发表回复