2016-10-17 2 views
0

저와 함께 도와주세요.body-parser가 배열 스키마에 데이터를 구문 분석하는 방법은 무엇입니까?

내 몽구스 스키마 내가 몸 파서가 MongoDB를에이 ​​데이터를 분석 할 수있는 방법이

var TheSchema = new Schema({ 
    name: 'String', 
    givenTask: [{ 
    today: 'String', 
    tomorrow: 'String' 
    }] 
}); 

처럼 찾고? 나는 이것을 시험해 보았다 :

.post(function(req, res) { 

     var schema = new TheSchema(); 

     schema.name = req.body.name; 
     schema.givenTask.today = req.body.today; 
     schema.givenTask.tomorrow = req.body.tomorrow; 

     schema.save(function(err) { 
     }); 

    }); 

내가 우편 배달부에서주의해야 할 것이 있는가? 나는 시체 필드의 이름을 다음과 같이 정의 할 것이라고 생각했습니다. 이름 : now : later :

나를 고칠 수 있습니까? 많은 감사드립니다.

+0

먼저 이름은 스키마에서 만든 이름과 일치해야합니다. 따라서 'now'와 'later'는 demo'd 스키마에 없습니다. 둘째, 실제 문제는 무엇입니까? 신체의 특성이 아닌가? 아니면 다른 문제가 있습니까? –

+0

감사합니다. 편집했습니다. 이 버전에서만 문제가되었습니다. 문제는 이처럼 MongoDB에서 데이터를 가져올 수 없다는 것이며, 현재와 미래의 필드를 인식하지 못하고 배열을 구축하지 못한다는 것입니다. 스키마 배열을 비워두기 만하면됩니다. 이것들은 신체에서 입력 될 것입니다, 그렇습니다. – TheGabornator

+0

아아, 주어진 태스크를'[]'배열로 호출하기 때문입니다. 배열을 비어있는 것으로 초기화 한 다음 객체를 그 안에 밀어 넣어야합니다. 'schema.givenTask = [];와 같은 것. schema.givenTask.push (오늘 : req.body.today, 내일 : req.body.tomorrow)), ' –

답변

1

givenTask 배열에 삽입하려면 초기화 한 다음 객체를 삽입해야합니다.

var schema = new TheSchema(); 

schema.name = req.body.name; 
schema.givenTask = []; 
schema.givenTask.push({today: req.body.today, tomorrow: req.body.tomorrow}); 

schema.save(function(err) { 
}); 
+0

정말 고마워. 그것은 완전히 작동합니다! – TheGabornator