POST请求:
数据放在body里面;容量大 <2G

.
get & post
POST请求
(1)数据放在body中进行传输(2)容量大:<2G(3)多段数据
思路:引入querystring模块,创建数组获取buffer多段数据并用concat拼接,querystring.parse(data)获取json
let http = require('http')
let querystring = require('querystring') //引入querystring模块
http.createServer((req, res) => {
let result = []
//Node.js中定义了Buffer类,专门用来存放二进制数据的缓存区
req.on('data', buffer => {
result.push(buffer)
})
req.on('end', () => {
//console.log(result);
let data = Buffer.concat(result).toString();
console.log(querystring.parse(data))
})
}).listen(8080)
nodejs请求
如果接受包时,因网络延迟,包的顺序有变化。是由后台自动进行重排序,还是需要手动排序?
POST请求
数据是放在body里面进行传输
容量大: <2G
let http = require('http')
let querystring = require('querystring')
http.createServer((req,res) => {
let result = [];
req.on('data', (buffer) => {
//console.log(buffer);
result.push(buffer);
})
req.on('end',() => {
//console.log(result)
let data = Buffer.concat(result).toString()
console.log(querystring.parse(data))
})
}).listen(8888)
1 GET
url?user=xxx&pass=xxx
<32k
url模块
url.parse(req.url,true)
2 POST
放在体
<2G
querystring
querystring.parse()
post 请求(数据放在body里G 容量大 小于2G 数据分段给)
const http = require('http')
const querystring = require('querystring')
http.createServer((req, res)=>{
let result = []
// buffer 二进制
req.on('data', buffer=>{
console.log(buffer)
result.push(buffer)
})
req.on('end',()=>{
//由于是成段获取所以要拼接起来
let data = Buffer.concat(result).toString()
console.log(querystring.parse(data))
})
}).listen(8888)GET
url?user=XX&pass=XX
<32k
url模块
url.parse(req.url,true)
POST
放在体里
2G
querystring
querystring.parse(data)
大文件上传的断点续传,可以做?
POST请求,数据放在body中传输,容量大:<2G
let http = require('http')
let querystring= require('querystring')
http.createServer((req,res)=>{
// 定义一个数组
let result=[]
//逐段读取body,以buffer形式返回
req.on('data',buffer=>{
result.push(buffer)
})
req.on('end',()=>{
//Buffer.concat()将数组中的字节流连接在一起
let data=Buffer.concat(result).toString()//这种不能用于图片视频等文件
//querystring将query字符串转成对象
console.log(querystring.parse(data))
})
}).listen(8888)
POST 总结
GET 总结