基于node.js依赖express解析post请求四种数据格式
2019/6/27 21:10:26
本文主要是介绍基于node.js依赖express解析post请求四种数据格式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。
这篇关于基于node.js依赖express解析post请求四种数据格式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-30React Native常用组件-点击组件
- 2024-05-30uniapp+vue3+uv-ui手机端后台OA管理模板
- 2024-05-29Python网络爬虫的时候json=就是让你少写个json.dumps()
- 2024-05-27React Native常用组件-展示组件
- 2024-05-27React Native常用组件-列表组件
- 2024-05-09vue3开发前端表单缓存自定义指令,移动端h5必备插件
- 2024-05-09React Hooks在class组件中的使用方式
- 2024-03-30[OIDC in Action] 2. 基于OIDC(OpenID Connect)的SSO(纯JS客户端)
- 2024-03-29terraform jsonencode
- 2024-03-13vuex-persist