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());

  

时间: 2024-08-13 14:35:11

Node.js Express 获取request原始数据的相关文章

Node.js express获取参数有三种方法

Node.js express获取参数有三种方法 近本人在学习开发NodeJs,使用到express框架,对于网上的学习资料甚少,因此本人会经常在开发中做一些总结. express获取参数有三种方法:官网介绍如下 Checks route params (req.params), ex: /user/:id Checks query string params (req.query), ex: ?id=12 Checks urlencoded body params (req.body), ex

node.js express fs 获取已上传文件数据格式

{ "fieldName": "photo", "originalFilename": "1395130808991.jpg", "path": "tmpupload/25546-z8u01y.jpg", "headers": { "content-disposition": "form-data; name=\"photo\&

Node.js Express 框架学习

转载:http://JavaScript.ruanyifeng.com/nodejs/express.html#toc0 感觉很牛的样子,不过觉得对初学者没太大用,里面很多例子用的api都没有详细的说明.为了学习备份,所以拷贝过来. Express框架 来自<JavaScript 标准参考教程(alpha)>,by 阮一峰 目录 概述 运行原理 底层:http模块 对http模块的再包装 什么是中间件 use方法 Express的方法 all方法和HTTP动词方法 set方法 response

Node.js, Express的服务器搭建过程的问题

Node.js, Express的服务器搭建过程的问题 Express : node.js 的框架,根据2012年BYvoid的说法,是node.js官方唯一推荐的框架 怎么搭建项目? - 安装nodejs->npm->express - express 的问题: 2017年, express-generator已经被独立成命令行工具了,所以要用 npm install express-generator 这样才能用express命令 怎么启动项目? 启动服务器可以用node app.js,因

基于 Node.js + Express + mongoDB + Bootstrap 搭建的电影网站

电影网站 ?? GitHub: https://github.com/bxm0927/movie-website 此项目是基于 Node.js + Express + mongoDB + Bootstrap 搭建的电影网站. 主要功能模块: 一期:前台电影展示页.电影详情页.后台电影管理中心(电影录入.电影修改) 二期:用户登录注册注销功能.用户识别和持久化.后台用户管理中心(用户录入.用户修改).电影评论 <!-- more --> 图片预览 技术栈 [前端] HTML/CSS/JS:亘古不

Windows下Node.js+Express+WebSocket 安装配置

Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V8引 擎执行Javascript的速度非常快,性能非常好.Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好.Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.Node.js 使用事件驱动, 非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的

body-parser Node.js(Express) HTTP请求体解析中间件

body-parser Node.js(Express) HTTP请求体解析中间件 2016年06月08日     781     声明 在HTTP请求中,POST.PUT和PATCH三种请求方法中包含请求体,Node.js 原生HTTP模块中,请求体要基于流的方式接收和解析.body-parser是一个HTTP请求体解析中间件,使用这个模块可以解析JSON.Raw.文本.URL-encoded格式的请求体,Express框架中就是使用这个模块做为请求体解析中间件. 请求体解析 1.1 原生环境

Node.js Express+Mongodb 项目实战

Node.js Express+Mongodb 项目实战 这是一个简单的商品管理系统的小项目,包含的功能还算挺全的,项目涵盖了登录.注册,图片上传以及对商品进行增.删.查.改等操作,对于新手来说是个很不错的练手项目,分享给大家. GitHub源码:https://github.com/oceanMin/cms 项目前准备 安装node.js 安装express 安装mongoDB 章节目录 快速开始 快速开始 模块 express商品管理系统介绍 框架搭建.ejs .express.static

node.js+express+mongoose实现用户增删查改案例

node.js+express+mongodb对用户进行增删查改 一.用到的相关技术 使用 Node.js 的 express 框架搭建web服务 使用 express 中间件 body-parse 解析表单 post 请求体 使用 art-template 模板引擎渲染页面 使用第三方包 mongoose 来操作 MongoDB 数据库 二.在命令行用 npm 执行相关的命令 初始化项目,在命令行执行 npm init 然后一路回车就行了(或者直接 npm init -y)生成 package