当前位置: 首页 > 编程笔记 >

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

顾承平
2023-03-14
本文向大家介绍基于node.js依赖express解析post请求四种数据格式,包括了基于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);

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

 类似资料:
  • 问题内容: 当我在项目中包含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。如果您