基于node.js依赖express解析post请求四种数据格式

 更新时间:2017年02月13日 11:23:04   作者:Sherlock_H  
本篇文章主要介绍了node.js依赖express解析post请求四种数据格式,主要是www-form-urlencoded,form-data,application/json,text/xml,有兴趣的可以了解一下。

node.js依赖express解析post请求四种数据格式

分别是这四种:

  • www-form-urlencoded
  • form-data
  • application/json
  • text/xml

1、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进行测试,这里就不赘述。

2、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!");
});

3、application/json

body-parser中间件支持json解析, 添加中间件进行解析即可

app.use(bodyParser.json());

4、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);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • NodeJs Express框架实现服务器接口详解

    NodeJs Express框架实现服务器接口详解

    最近学习了基于前后端分离的开发模式,我前端使用Vue框架,后端使用nodejs开发API接口,下面这篇文章主要给大家介绍了关于nodejs使用Express框架写后端接口的相关资料,需要的朋友可以参考下
    2022-08-08
  • NodeJS连接MongoDB数据库时报错的快速解决方法

    NodeJS连接MongoDB数据库时报错的快速解决方法

    下面小编就为大家带来一篇NodeJS连接MongoDB数据库时报错的快速解决方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考
    2016-05-05
  • koa-passport实现本地验证的方法示例

    koa-passport实现本地验证的方法示例

    这篇文章主要介绍了koa-passport实现本地验证的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Node.js API详解之 net模块实例分析

    Node.js API详解之 net模块实例分析

    这篇文章主要介绍了Node.js API详解之 net模块,结合实例形式分析了Node.js API中net模块基本函数、用法与使用技巧,需要的朋友可以参考下
    2020-05-05
  • Node.js服务器开启Gzip压缩教程

    Node.js服务器开启Gzip压缩教程

    开启网站的 gzip 压缩功能,通常可以高达70%,也就是说,如果你的网页有30K,压缩之后就变成9K, 对于大部分网站,显然可以明显提高浏览速度(注:需要浏览器支持)。
    2017-08-08
  • nodejs简单抓包工具使用详解

    nodejs简单抓包工具使用详解

    这篇文章主要介绍了nodejs简单抓包工具使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • node.js事件轮询机制原理知识点

    node.js事件轮询机制原理知识点

    在本篇文章里小编给大家分享的是一篇关于node.js事件轮询机制的相关知识点文章,有兴趣的朋友们可以参考下。
    2019-12-12
  • Node.js前后端交互实现用户登陆的实践

    Node.js前后端交互实现用户登陆的实践

    本文主要介绍了Node.js前后端交互实现用户登陆的实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 完美解决linux下node.js全局模块找不到的情况

    完美解决linux下node.js全局模块找不到的情况

    今天小编就为大家分享一篇完美解决linux下node.js全局模块找不到的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Node.js 使用 zlib 内置模块进行 gzip 压缩

    Node.js 使用 zlib 内置模块进行 gzip 压缩

    这篇文章主要介绍了Node.js 使用 zlib 内置模块进行 gzip 压缩,nodejs为我们提供了一个zlib内置模块,我们可以使用它其中的gzip方法来对传递的数据进行压缩,从而提高数据传递效率,更多相关内容需要的朋友可以参考一下
    2022-09-09

最新评论