Mongoose: настройка пользовательских настроек маршрута - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь создать маршрут 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.Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...