zoukankan      html  css  js  c++  java
  • Node.js Express 获取request原始数据

    app.use(bodyParser.json());
    客户端请求接口时如果指名请求头类型 为Content-Type=application/json
    bodyParser 会自动将 body 里的 json 格式数据正确解析,

    // bodyParser 依赖 raw-body 库,raw-body库里面有这样一段代码

    function cleanup() {
       received = buffer = null
       stream.removeListener('data', onData)
       stream.removeListener('end', onEnd)
       stream.removeListener('error', onEnd)
       stream.removeListener('close', cleanup)
    }
    

      


    这样导致在express里面req监听on, end事件是不会执行的.要想在express里面拿到request的原始数据

    可以再注册bodyPaser之前先把原始数据保存起来.代码如下:

    app.use(function(req, res, next){
        var reqData = [];
        var size = 0;
        req.on('data', function (data) {
            console.log('>>>req on');
           reqData.push(data);
            size += data.length;
        });
        req.on('end', function () {
            req.reqData = Buffer.concat(reqData, size);
        });
        next();
    });
    
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded());
    

      

  • 相关阅读:
    2020软件工程作业00
    2020软件工程作业03
    2020软件工程作业02
    软件工程作业01
    2020软件工程作业06
    2020软件工程作业05
    问题清单
    2020软件工程作业04
    2020软件工程作业02
    2020软件工程作业1
  • 原文地址:https://www.cnblogs.com/hubcarl/p/4066183.html
Copyright © 2011-2022 走看看