猫鼬:配置用户设置路由

时间:2018-10-02 07:19:12

标签: node.js express mongoose

我正在尝试创建一个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中。


我已经设置了bodyParsersessionsmethodOverride。我很困惑,因为此确切配置适用于Posts集合。任何和所有帮助表示赞赏。

0 个答案:

没有答案