zoukankan      html  css  js  c++  java
  • node.js依赖express解析post请求四种数据格式()

    分别是这四种:

    www-form-urlencoded,

    form-data,

    application/json,

    text/xml

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

    • 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!");
      });
    • application/json
      body-parser中间件支持json解析, 添加中间件进行解析即可
      app.use(bodyParser.json());
      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);
  • 相关阅读:
    Linux 环境变量
    sharepoint webapp 部署注意点
    如何让html中的td文字只显示部分
    作业服务笔记
    HBase全分布安装配置
    CentOS Hadoop安装配置详细
    WCF访问超时:HTTP 请求已超过xx:yy分配的超时。为此操作分配的时间可能是较长超时的一部分。
    Apache Spark支持三种分布式部署方式 standalone、spark on mesos和 spark on YARN区别
    ext3文件系统挂载优化--HBase
    CentOS安装HBase
  • 原文地址:https://www.cnblogs.com/whybxy/p/8690246.html
Copyright © 2011-2022 走看看