샘플 JSON 데이터는 내 MongoDB를 배치하는 방법을 보여 : 위해 지금배열 항목의 NodeJS 백엔드 POST?
<input type="text" name="state" />
<input type="text" name="name"/>
:
{
"state" : "California"
"person" [{"name": "Bob"}, {"name": "Bill"}]
}
내 HTML에서 다음 POST 값 name
및 state
에 입력 양식이 이 POST를 처리하기 위해 다음과 같이 배열 된 노드 루트 코드가 있습니다.
router.post('/profile', function(req, res, next) {
User.findOne({ _id: req.user._id }, function(err, user) {
if (err) return next(err);
/*first action*/
user.state = req.body.state;
/*second action*/
user.person.name = req.body.name;
user.save(function(err) {
if (err) return next(err);
req.flash('success', 'Purchase successful');
return res.redirect('/profile');
});
});
});
다음은 어떤 의미입니까? 먼저 state
을 입력하고 제출하면 상태 (내 DB에 표시된대로)가 사용자가 입력 한 값으로 변경됩니다. 이는 의도 한대로 작동합니다.
두 번째로 name
을 입력하고 제출하면 배열에 새로운 name
이 추가되어야합니다.
두 번째 작업이 작동하지 않습니다. 그래서 같이 푸시와 루프에 대한 코드를 교체 시도했다 :
for (var i = 0; i < user.person.length; i++){
user.push({
name: person[i].name
});
}
이 작동되지 않았습니다. 또한이 모든 것이 ejs를 통해 렌더링 될 것이라는 점을 덧붙이고 싶습니다.
죄송합니다. 답변을 ' – ishmaelMakitla