2011-10-14 31 views
1

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

回答

2

节点有一个这样的模块。

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

但无论如何连接/快递存储原始文件在req.rawBody

+1

'req.rawBody'正在回应'undefined' –

+0

@TarandeepGill,看到这个SO:http://stackoverflow.com/questions/18710225/node-js-get-raw-request-body-using-express – TWright

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

如果你想处理子阵列/子对象的功能将变得更加复杂,但是对于你上面描述的内容,我认为应该这样做。