我正在尝试创建一个PUT路由,该路由允许用户从nativelanguage
更改其default: English
,但似乎遇到了一些问题。我已经为其他模型成功编写了PUT路线,但是似乎User 1的行为有所不同。
此路线:
router.put('/settings/:id/nativelanguage', isLoggedIn, function(req, res){
var nativeLanguage = req.body.nativeLanguage;
User.findByIdAndUpdate(req.params.id, {nativeLanguage}, function (err, updatedUser){
if (err){
res.send("error... ruh roh");
console.log(err);
} else {
res.redirect("/dashboard");
console.log(updatedUser)
}
});
});
此表单:
<div class="nativelanguage">
<form action="/user/<%=User._id%>/nativelanguage?_method=PUT" method="POST">
<select name="nativeLanguage">
<option value="English">English</option>
<option value="Dutch">Dutch</option>
<option value="French">French</option>
<option value="German">German</option>
<option value="Italian">Italian</option>
<option value="Spanish">Spanish</option>
<option value="Polish">Polish</option>
</select>
<button type="submit"> Submit </button>
</form>
给出此错误:
Cannot PUT /user//nativelanguage
并且使用/user/nativelanguage/:id
这样的路由,由于某种原因,用户ID仍未显示在URL中。
我已经设置了bodyParser
,sessions
和methodOverride
。我很困惑,因为此确切配置适用于Posts
集合。任何和所有帮助表示赞赏。