node.js依赖express解析post请求四种数据格式
分别是这四种:
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);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
问题内容: 当我在项目中包含Express时,尝试使用webpack进行编译时总是会遇到这些错误。 webpack.config.dev.js 我试过了: 安装“ fs”,但不起作用 阅读某处以更改节点fs属性。它消除了错误警告,但是我认为这不是一个很好的永久解决方案。 node: { fs: “empty” } } 时间:2496ms资产大小块块名称bundle.js 761 kB 0 [已发射
问题内容: 我试图弄清楚如何可以将图像直接发布到GridFS而不先将其作为临时文件存储在服务器上的任何位置。 我正在使用Postman(chrome ext。)发布文件,并且使用以下方法设法将此帖子存储为文件: 当从服务器上的文件创建readStream时,我也能够从readStream直接存储到GridFS。(请参见代码) 我有以下文件,它们侦听POST并基本上将其传递给。 saveFromRe
主要内容:获取GET请求内容,实例,实例,获取 POST 请求内容,基本语法结构说明,实例在很多场景中,我们的服务器都需要跟用户的浏览器打交道,如表单提交。 表单提交到服务器一般都使用 GET/POST 请求。 本章节我们将为大家介绍 Node.js GET/POST请求。 获取GET请求内容 由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数。 node.js 中 url 模块中的 parse 函数提供了这个
在很多场景中,我们的服务器都需要跟用户的浏览器打交道,如表单提交。 表单提交到服务器一般都使用 GET/POST 请求。 本章节我们将为大家介绍 Node.js GET/POS T请求。 获取GET请求内容 由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数。 node.js 中 url 模块中的 parse 函数提供了这
问题内容: 我正在尝试通过带有POST请求的照片上传 根据自述文件,我应该能够做到这一点 问题是,这不起作用。我收到测试服务器的回复,说它转储了0个post变量。 我已经确认该HTML小页面服务器处于工作状态 所以问题是,请求模块在做什么?有没有更好的方法来发送节点? 问题答案: 经过更多研究后,我决定使用。这使得分段上传非常容易。
问题内容: 我正在向node.js发送带有以下请求的凭据JSON对象: 在服务器端,我想将提交的凭据加载到JSON对象中,以进一步使用它。 但是,我不知道如何从req对象中获取JSON … (我的函数(req,res)中有一个调度程序,将req进一步传递给控制器,所以我不想使用.on(’data’,…)函数) 问题答案: 在服务器端,您将接收jQuery数据作为请求参数,而不是JSON。如果您