node.js 如何解析POST数据呢
发布于 1年前 作者 hackerjs 1383 次浏览

有没有简单的实现? 分享一个啊,

5 回复

使用express3时。直接req.body.你的参数 就可以了

遵照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模块处理的一个请求参数转变为请求对象的

添加 req.on(‘data’) req.on(‘end’)

要加上bodyparser 才可以的吧

回到顶部