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


Posted in Javascript onFebruary 13, 2017

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

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

Javascript 相关文章推荐
javascript 处理HTML元素必须避免使用的一种方法
Jul 30 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
Jan 27 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
Apr 24 Javascript
简体中文转换繁体中文(实现代码)
Dec 25 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
Jun 24 Javascript
微信小程序 Storage API实例详解
Oct 02 Javascript
Vue-cli创建项目从单页面到多页面的方法
Sep 20 Javascript
Vue实现带进度条的文件拖动上传功能
Feb 23 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
Apr 20 Javascript
如何解决webpack-dev-server代理常切换问题
Jan 09 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
Sep 10 Javascript
浅谈JSON5解决了JSON的两大痛点
Dec 14 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
Feb 13 #Javascript
Angularjs自定义指令实现三级联动 选择地理位置
Feb 13 #Javascript
基于jQuery代码实现圆形菜单展开收缩效果
Feb 13 #Javascript
JS中setTimeout和setInterval的最大延时值详解
Feb 13 #Javascript
Vue.js实现简单动态数据处理
Feb 13 #Javascript
JavaScript获取select中text值的方法
Feb 13 #Javascript
详谈$.data()的用法和作用
Feb 13 #Javascript
You might like
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
探讨PHP使用eAccelerator的API开发详解
2013/06/09 PHP
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
如何解决vue在ios微信"复制链接"功能问题
2020/03/26 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
Python and、or以及and-or语法总结
2015/04/14 Python
基于Python的接口测试框架实例
2016/11/04 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
2019/05/28 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
电子商务专业推荐信范文
2013/12/02 职场文书
测控技术与仪器个人求职信范文
2013/12/30 职场文书
捐助感谢信
2015/01/22 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
公司文体活动总结
2015/05/07 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书