实现一个body-parser解析post数据的功能,主要用到的就是利用server.use(function(){}),对每一条上传的数据进行处理,来实现,另外就是req的操作会保留,以此来实现调用req.body获取数据,还有就是use的链式操作
const express = require('express');
const querystring = require('querystring');
var server = express();
server.listen(8080);
server.use(function(req,res,next){
let str = '';
req.on('data',function(data){
str += data;
})
req.on('end',function(){
req.body = querystring.parse(str);
next();//数据接受完毕再执行下一步
})
});
server.use('/',function(req,res,next){
console.log(req.body);//好使
});
下面这段代码就是实现获取数据并放到req上,供下面获取的原理,可以将他封装一下,成为一个包,就可以在别的js文件中导入它,以实现body-parser的解析post数据的功能
server.use(function(req,res,next){
let str = '';
req.on('data',function(data){
str += data;
})
req.on('end',function(){
req.body = querystring.parse(str);
next();//数据接受完毕再执行下一步
})
});
形成一个模块,外部可调用
const querystring = require('querystring');
module.exports = function(req,res,next){
let str = '';
req.on('data',function(data){
str += data;
})
req.on('end',function(){
req.body = querystring.parse(str);
next();
})
}