我正在使用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
答案 0 :(得分:2)
Node有一个模块。
var qs = require('querystring');
...
console.log(qs.stringify(req.body));
但是无论如何,连接/表达将原始主体存储在req.rawBody
中。
答案 1 :(得分:0)
我认为这应该相当简单 - 你应该能够像在浏览器中那样做。此函数将对象/数组的所有字符串/数字成员转换为可用作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('&');
};
如果你想处理子数组/子对象,这个函数会变得更复杂,但是对于你上面描述的内容,我认为应该这样做。