Express.js:将 req.body 转换为 POST 编码的字符串

发布于 2024-12-09 19:29:38 字数 270 浏览 0 评论 0原文

我正在使用 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

I'm using the express.bodyParser middleware and I'm trying to convert req.body object into a POST encoded string. Is there a way of doing this?

Example:

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

Becomes:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

治碍 2024-12-16 19:29:38

Node 有一个用于此目的的模块。

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

但 connect/express 无论如何都会将原始主体存储在 req.rawBody 中。

Node has a module for this.

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

But connect/express store the raw body in req.rawBody anyway.

小梨窩很甜 2024-12-16 19:29:38

我认为这应该相当简单 - 您应该能够像在浏览器中一样进行操作。此函数将对象/数组的所有字符串/数字成员转换为可用作 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('&');
};

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

I think this should be fairly simple - you should be able to do it the same way you would do in a browser. This function converts all string/number members of an object/array to a string that can be used as a POST body:

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('&');
};

If you want to handle sub-arrays/sub-objects the function would get more complicated, but for what you describe above I think that should do the trick.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文