node写一个自己的中间件

实现一个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();
 	})
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值