Я пытаюсь создать маршрут PUT, который позволяет пользователю изменять свои nativelanguage
с default: English
, но, похоже, наталкивается на несколько проблем.Я успешно написал маршруты PUT для других моделей, но кажется, что пользовательский работает по-другому.
Этот маршрут:
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
идентификатор пользователя по какой-то причине по-прежнему не отображается в URL.
И у меня настроены bodyParser
, sessions
и methodOverride
.Я в тупике, потому что эта точная конфигурация работает для коллекции Posts
.Любая помощь приветствуется.