请教…express…如何处理post上来的数组, 例如: a[0].id=123 a[0].name=abc a[1].id=234 a[1].name=cdf
我从req.body.a监控看到只能得到以下数据 0].id=12 0].name=ab 1].id=23 1].name=cd
貌似是把第一个中括号和最后一个字符去掉了…我估摸着它是不是把我提交的数据当成a[name]=xx,a[id]=xx来处理了…这样的话…req.body.a.name和req.body.a.id是可以取出来的
用formidable得到如下数据: fields: { ‘title[0].id’: ‘111’, ‘title[1].id’: ‘222’ } 为什么不是:{title : [{id:‘111’}, {id:‘222’}]}…看来用重写bodyParse()啊
post的时候编码就不对吧,得做成字符串格式。前端编码+服务器端解码,这是基本的道理吧。
给你看个例子~看下对你是不是有帮助~
$.post("/index?c=login",{v :{"username":"test", "password":"test"}}, function(data){
if(data.code == 0){
window.location.href="/index?c=toMainPage";
} else {
console.log(data.msg);
}
});
获取的方法:
var loginJson = req.body.v;
你不需要post数组,可以把数组转化为json数据,然后post过去~那样就ok啦!
已经解决…数组是没问题的…@huangdh3说的是没问题…但是有时候我想直接form提交上去了…是个数组的形式…里面有对象这样的…
如何解决的呢?
@olddog 可以看这里. 在 Express 中处理 JSON http://www.ibm.com/developerworks/cn/java/j-nodejs/index.html#N101D8
推荐你一个模块 qs,也是tj写的,tj就是通过这个模块在expressjs框架中处理类似情况的。可以用这个模块来代替api中的 querystring.parse() 方法。 还有种需求就是客户端发送
user.face=aaa
user.name=bbb
需要解析为
{user:
{
face:aaa,
name:bbb
}
}
qs模块式无法胜任了,只能自己写了,参考: https://github.com/DoubleSpout/rrestjs/blob/master/lib/RestReqParam.js
对头,老吴 @snoopy 以前的框架rrestjs没有这个模块,自从有了这个模块,前台传对象,后台得到的也是对象,唯一一个很麻烦的就是会结构的确不会变,但是类型都会变成字符串,老吴你看有没有办法能除了保持对象的结构不变,还能保证数据类型一致性呢?
那只有在数据上传上来之后,解析的时候增加if判断了,会影响性能的,我不想这么做
@by5739 请问如何解决的?