2014-11-03 34 views
3

您好我正在创建使用Node,Express和Mongo的示例REST api。我使用bodyParser()中间件解析表单数据。为简单对象其工作细说不能发布嵌套的对象json到节点快车体分析器

  var user = { 
      name:'test', 
      age:'20' 
     } 

req.body产生相同的一套格式将其保存在像MongoDB的。

  { 
      name:'test', 
      age:'20' 
     } 

当使用复杂的对象

  var user = { 
       name:'test', 
       age:'20', 
       education: { 
        institute:"xxx", 
        year:2010 
       } 
      } 

req.body产生不同的格式类似

  { 
       name:'test', 
       age:'20', 
       education[institute]: "xxx", 
       edcuation[year]:2010 
      } 

我想获得我张贴在体内相同的格式将它们保存在数据库中。这是正确的方法还是其他任何可用的方法?

回答

9

我觉得,文档上还不清楚。我花了好几个小时才找到它。无论如何..

你应该改变你的身体分析器选项extended: true像下面一样。

app.use(bodyParser.urlencoded({ extended: true)); 

https://github.com/expressjs/body-parser?_ga=1.163627447.940445150.1418712389#bodyparserurlencodedoptions

+1

事实上,我可以具有类似[问题](http://stackoverflow.com/questions/38195552/trouble-with-posting-json-data-with-node-request -to-Express的服务器,用于节能)。服务器是用node.js + Express编写的,客户端是另一个node.js应用程序。集合的模式是分层的,因此更复杂一点。我尝试了'extended:true'和'extended:false',但都没有成功。我错过了什么? – 2016-07-05 05:31:47

+0

我真的不知道为什么。但我建议你在堆栈上打开一个新的问题或在body-parser的github网站上报告。 – efkan 2016-07-05 06:35:28