樣品JSON數據,向你展示我的MongoDB是怎麼安排的:NodeJS後端POST數組項?
{
"state" : "California"
"person" [{"name": "Bob"}, {"name": "Bill"}]
}
我有以下崗位價值name
和state
在我的HTML輸入表單:
<input type="text" name="state" />
<input type="text" name="name"/>
現在,爲了處理這個帖子,我已經安排像這樣我的節點路徑代碼:
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
後,狀態(如我的數據庫中所示)將更改爲用戶輸入的內容。這按預期工作。
其次,輸入並提交name
後,應該有一個新的name
添加到陣列。
第二個操作不起作用。我試圖用push和for循環代替代碼,如下所示:
for (var i = 0; i < user.person.length; i++){
user.push({
name: person[i].name
});
}
這沒有奏效。我還想補充一點,這都是要通過ejs呈現的。
對不起,我更新了答案' – ishmaelMakitla