分别是这四种:

www-form-urlencoded,

form-data,

application/json,

text/xml

  • www-form-urlencoded
    这是http的post请求默认的数据格式,需要body-parser中间件的支持
    服务器端的demo:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
extended:true
}));
app.post('/urlencoded', function(req, res){
console.log(req.body);
res.send(" post successfully!");
});
app.listen(3000);

可以用postman进行测试,这里就不赘述。

  • form-data
    这种方式一般用于数据上传,需要中间件connect-multiparty的支持
    服务器端的demo:

    var multipart = require('connect-multiparty');
    var multipartMiddleware = multipart();
    app.post('/formdata',multipartMiddleware, function (req, res) {
    console.log(req.body);
    res.send("post successfully!");
    });
  • application/json
    body-parser中间件支持json解析, 添加中间件进行解析即可
    app.use(bodyParser.json());
    text/xml
    body-parser默认不支持这种数据格式

    • 解决方法:把请求体参数按照字符串读取出来,然后使用 xml2json 包把字符串解析成json对象,然后对json对象进行操作,方便得多。
    • 注意:我们还是要使用 body-parse 得到字符串,然后再转化.
      利用req上定义的事件 data 来获取http请求流, end 事件结束请求流的处理.
      利用 xml2json 把上面得到的请求参数流(我们直接转化为字符串)转化为 json 对象.
      demo如下:
    var express = require('express');
    var bodyParser = require('body-parser');
    var xml2json=require('xml2json');
    var app = express();
    app.use(bodyParser.urlencoded({
    extended: true
    }));
    app.post('/xml', function (req, res) {
    req.rawBody = '';//添加接收变量
    var json={};
    req.setEncoding('utf8');
    req.on('data', function(chunk) {
    req.rawBody += chunk;
    });
    req.on('end', function() {
    json=xml2json.toJson(req.rawBody);
    res.send(JSON.stringify(json));
    });
    });
    app.listen(3000);

node.js依赖express解析post请求四种数据格式()的更多相关文章

  1. node.js中express模块创建服务器和http模块客户端发请求

    首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...

  2. Code Your First API With Node.js and Express: Set Up the Server

    How to Set Up an Express API Server in Node.js In the previous tutorial, we learned what the REST ar ...

  3. Node.js基于Express框架搭建一个简单的注册登录Web功能

    这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...

  4. node.js之express框架

    之前学习过node.js接触过express框架,最近为了编写一个mock server正好用到了express.下面正好就跟大家介绍一下关于express.今天的内容主要围绕这么几个方面? expr ...

  5. node.js和express.js安装和使用步骤 [windows]

    PS: NODEJS:https://nodejs.org NPM:https://www.npmjs.com/ 一.node.js安装与配置 到https://nodejs.org/en/downl ...

  6. Node.js系列-express(上)

    前言 Node.js系列的第一篇:http,大概描述了通过使用node.js内置的api创建一个服务并监听request实现简单的增删改查.现在,我们就通过通读express官网及使用express框 ...

  7. node.js,express入门看详细篇

    先最简单的代码 安装 npm install express app.js 代码内容 const express = require('express') const app = express() ...

  8. node.js使用express框架进行文件上传

    关于node.js使用express框架进行文件上传,主要来自于最近对Settings-Sync插件做的研究.目前的研究算是取得的比较好的进展.Settings-Sync中通过快捷键上传文件,其实主要 ...

  9. 如何设计一个基于Node.js和Express的网站架构?

    前言 今年七月份,我和几个小伙伴们合伙建立了一个开发团队.业务开展如火如荼的同时,团队宣传就提上了日程,所以迫切需要搭建公司网站出来.确定目标后我们就开始考虑如果构建一个企业网站.先是进行业内调查,看 ...

随机推荐

  1. log4j2的环境变量使用

    官方文档  http://logging.apache.org/log4j/2.x/manual/lookups.html#EnvironmentLookup

  2. JavaScript高级程序设计学习(四)之引用类型(续)

    一.Date类型 其实引用类型和相关的操作方法,远远不止昨天的所说的那些,还有一部分今天继续补充. 在java中日期Date,它所属的包有sql包,也有util包.我个人比较喜欢用util包的.理由, ...

  3. centos7安装python3和pip3

    python3安装 1.安装准备 # 创建安装目录 mkdir /usr/local/python3 #下载python3 wget --no-check-certificate https://ww ...

  4. POJ1251(Kruskal水题)

    https://vjudge.net/problem/POJ-1251 The Head Elder of the tropical island of Lagrishan has a problem ...

  5. arcgis_js_api_3.12的project实践

    esri.config.defaults.geometryService = new esri.tasks.GeometryService("http://localhost:6080/ar ...

  6. Luogu P3390 【模板】矩阵快速幂&&P1939 【模板】矩阵加速(数列)

    补一补之前的坑 因为上次关于矩阵的那篇blog写的内容太多太宽泛了,所以这次把一些板子和基本思路理一理 先看这道模板题:P3390 [模板]矩阵快速幂 首先我们知道矩阵乘法满足结合律而不满足交换律的一 ...

  7. [Oracle]发生 ora-06502 RMAN 在对 catalog DB 同期时出错的调查方法

    Catalog DB resync error: 1, setting on the server that starts the RMAN client $ Export EVENT_10928 = ...

  8. 51nod 抽卡大赛

    抽卡大赛 链接 分析: $O(n^4)$的做法比较好想,枚举第i个人选第j个,然后背包一下,求出有k个比他大的概率. 优化: 第i个人,选择一张卡片,第j个人选的卡片大于第i个人的概率是$p_j$,那 ...

  9. 求组合数、求逆元、求阶乘 O(n)

    在O(n)的时间内求组合数.求逆元.求阶乘.·.· #include <iostream> #include <cstdio> #define ll long long ;// ...

  10. 异步编程(async&await)

    前言 本来这篇文章上个月就该发布了,但是因为忙 QuarkDoc 一直没有时间整理,所以耽搁到今天,现在回归正轨. C# 5.0 虽然只引入了2个新关键词:async和await.然而它大大简化了异步 ...