我使用express.bodyParser中间件,并试图将req.body对象转换为POST编码字符串。有没有办法做到这一点?Express.js:将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
我使用express.bodyParser中间件,并试图将req.body对象转换为POST编码字符串。有没有办法做到这一点?Express.js:将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
节点有一个这样的模块。
var qs = require('querystring');
...
console.log(qs.stringify(req.body));
但无论如何连接/快递存储原始文件在req.rawBody
。
我想这应该是相当简单 - 你应该能够做到这一点,你会在浏览器中做同样的方式。该函数的对象/数组的所有字符串/数成员转换成可被用作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('&');
};
如果你想处理子阵列/子对象的功能将变得更加复杂,但是对于你上面描述的内容,我认为应该这样做。
'req.rawBody'正在回应'undefined' –
@TarandeepGill,看到这个SO:http://stackoverflow.com/questions/18710225/node-js-get-raw-request-body-using-express – TWright