【问题标题】:Express.js: Convert req.body into POST encoded stringExpress.js:将 req.body 转换为 POST 编码字符串
【发布时间】:2011-10-14 07:51:37
【问题描述】:

我正在使用 express.bodyParser 中间件,并且正在尝试将 req.body 对象转换为 POST 编码字符串。有没有办法做到这一点?

例子:

Name: Jonathan Doe
Age: 23
Formula: a + b == 13%!

变成:

Name=Jonathan+Doe&Age=23&Formula=a+%2B+b+%3D%3D+13%25%21

【问题讨论】:

    标签: javascript http post node.js express


    【解决方案1】:

    Node 对此有一个模块。

    var qs = require('querystring');
    ...
    console.log(qs.stringify(req.body));
    

    但是无论如何连接/表达将原始正文存储在req.rawBody 中。

    【讨论】:

    【解决方案2】:

    我认为这应该相当简单——你应该能够像在浏览器中那样做。此函数将对象/数组的所有字符串/数字成员转换为可用作 POST 正文的字符串:

    var objectToPostBody = function (object) {
      var i, out;
      if (!object) {
        return false;
      }
      out = [];
      for (i in object) {
        if (typeof object[i] === 'string' || typeof object[i] === 'number') {
          out[out.length] = encodeURIComponent(i) + '=' + encodeURIComponent(object[i]);
        }
      }
      return out.join('&');
    };
    

    如果您想处理子数组/子对象,该函数会变得更加复杂,但是对于您上面描述的内容,我认为这应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多