2014-11-03 3 views
3

안녕하세요 노드, 익스프레스 및 몽고를 사용하여 샘플 REST API를 만들고 있습니다. bodyParser() 미들웨어를 사용하여 양식 데이터를 구문 분석합니다. 간단한 객체에 대한 작업 벌금 req.body중첩 된 객체 json을 노드 익스프레스 바디 파서에 게시 할 수 없습니다.

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

이 같은 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

내가 생각하기에, 그것은 문서화에 분명하지 않다. 나는 그것을 찾기 위해 몇 시간을 보냈습니다. 어쨌든 ..

아래와 같이 body-parser 옵션을 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-server-for-saving)을 사용합니다. 서버는 node.js + Express로 작성되고 클라이언트는 또 다른 node.js 앱으로 작성됩니다. 콜렉션의 스키마는 계층 구조이므로 조금 더 복잡합니다. 나는 '확장 : 참'과 '확장 : 거짓'을 시도했지만 둘 다 시도하지 않았다. 내가 뭘 놓치고 있니? –

+0

나는 왜 그런지 정말로 모른다. 그러나 나는 몸짓 분석기의 github 사이트에서 스택이나 리포트에 새로운 질문을하는 것이 좋습니다. – efkan