有没有简单的实现? 分享一个啊,
遵照express对req.body的对象来说吧 //要想使用express里的body对象,首先要在中间件扩展req.body对象 实现方式:app.use(express.bodyParser())
//在express是这样实现的: //分三种情况,get请求,post表单简单提交(content-type: application/x-www-form-urlencoded), post表单详细提交(content-type: multipart/form-data) //用到的判断请求报体是否存在的函数是util.js文件的hasBody方法(主要源码分析是在json.js中) // 当是get请求/xx的时候,由于请求报文头不存在content-length头字段,所以会跳到判断第二种提交方式,由于是不存在content-length字段的所以(json, urlencoded, multipart)这三种情况都不存在,所以忽略掉 // 我们先只构建第一二种情况,post简单提交,当满足content-length的时候 // 源码: /*var getBody = require(‘raw-body’); getBody(req, {}, function(err, buf) { //得到的是
})
try {
req.body = buf.length
? qs.parse(buf, options)
: {};
} catch (err){
err.body = buf;
return next(err);
}*/
// 就是通过使用raw-body这个文件模块本身,传入请求报文头对象,和对象,最后设计回调函数触发,回调函数的第二个参数就是返回构建的请求字符串 (xx=123&bb=456) ,赋给req.body就是一个通过qs模块处理的一个请求参数转变为请求对象的