nodeJS接受post传过来的参数

1.nodeJs接受Post传递的参数需要通过绑定两个事件来获取,

     querystring = require("querystring");  
1 app.post('/communicate', function (req, res) { 2 var postData = ""; //POST & GET : name=zzl&[email protected] 3 // 数据块接收中 4 req.addListener("data", function (postDataChunk) { 5 postData += postDataChunk; 6 }); 7 // 数据接收完毕,执行回调函数 8 req.addListener("end", function () { 9 console.log('数据接收完毕'); 10 var params = querystring.parse(postData); //GET & POST ////解释表单数据部分{name="zzl",email="[email protected]"}12 msgQueue.push({ 13 "type":params.type, 14 "content":params.content 15 }); 16 res.send({ "content": { "seq": 24, "errorMessage": "" }, "result": "ok" }); 17 }); 18 });

 req绑定data事件来接受数据,如果触发了end事件就表示数据接受完毕!

 注意:接受的postData为一个字符串,需要通过"QueryString" 模块来实现URL参数字符串与参数对象的互相转换。它有两个api,

  一个是:stringify,另外一个是:parse,两个api的说明如下:

querystring.stringify(obj, [sep], [eq]) //序列化一个对象到一个 query string。可以选择是否覆盖默认的分割符('&')和分配符('=')。           
querystring.stringify({foo: 'bar', baz: 'qux'}, ';', ':')// 返回如下字串'foo:bar;baz:qux'
querystring.parse(str, [sep], [eq], [options])//将一个 query string 反序列化为一个对象。可以选择是否覆盖默认的分割符('&')和分配符('=')。
options对象可能包含maxKeys属性(默认为1000),它可以用来限制处理过的键(key)的数量.设为0可以去除键(key)的数量限制.
示例:querystring.parse('foo=bar&baz=qux&baz=quux&corge') // { foo: 'bar', baz: ['qux', 'quux'], corge: '' }

 

你可能感兴趣的:(nodeJS接受post传过来的参数)