express和body-parser
const express=require('express'); const bodyParser=require('body-parser'); var server=express(); server.listen(8080);
/*等价于body-parser,原理 server.use(function (req, res, next){ //所有访问都会执行 var str=''; req.on('data', function (data){ str+=data; }); req.on('end', function (){ req.body=querystring.parse(str); next(); }); }); */
// 使用bodyParser,否则server中req.body无值 server.use(bodyParser.urlencoded({ extended: false, //扩展模式是否启用 limit: 2*1024*1024 //限制-2M post数据大小 })); server.use('/', function (req, res){ console.log(req.query); //接收get数据 console.log(req.body); //接收post数据,必须使用body-parser之后,才能获取到 }); //req.query GET //req.body POST
GET请求无需中间件 req.query
POST请求需要中间件body-parser
链式操作next
const express=require('express'); const bodyParser=require('body-parser'); var server=express(); server.listen(8080); server.use('/', function (req, res, next){ console.log('a'); next(); }); server.use('/', function (req, res, next){ console.log('b'); });