当前位置: 首页 > 知识库问答 >
问题:

无法设置属性“username”为null

邹昊
2023-03-14

有一个错误,其中登录的用户将尝试更新他们的帐户用户名,但遇到一个错误。在我的一生中,我无法弄清楚为什么有时(可能有1/20的用户遇到这种情况)找不到当前的用户。只有登录后,用户才能访问此页面。错误有:

投掷;//未处理的“错误”事件

TypeError:无法设置null的属性“username”

错误似乎发生在这里:user.username=req.body.username;

router.post("/updateAccount", function (req, res) {
    if (req.user) {
        User.findOne({username: req.body.currentUser}, function (err, user) {
            if (err) {
                return done(err);
            }
            user.username = req.body.username;
            user.save(function (err) {
                if (err) {
                    req.flash("error", "It looks like that email address is taken.");
                    res.redirect('back')
                } else {
                    req.logout();
                    req.login(user, function (err) {
                        if (err) console.log('There was an account error' + err)
                        req.flash("success", "Your account has been created! Your username is " + user.username);
                        res.redirect('/results')

                    });
                }
            });
        });

    } else {
        res.redirect('/results')
    }

});

共有1个答案

阴雪风
2023-03-14

如果user.findone({username:req.body.currentuser}查询(如文档中所述)找不到匹配的用户,user将为空。

因此,如果是这种情况,您应该添加另一个检查,并适当地处理:

User.findOne({username: req.body.currentUser}, function (err, user) {
            if (err) {
                return done(err);
            }
            if (!user) {
                // handle this case as user.username = req.body.username will fail
            }
            // ... rest of the code
 类似资料:
  • 问题内容: 为什么会出现错误或未捕获的TypeError:无法将属性’innerHTML’设置为null?我以为我了解innerHTML并在以前使用过。 问题答案: 您必须将div放在脚本之前,以便在加载脚本时该div存在。

  • 我收到以下错误“bean类[java.util.ArrayList]的无效属性'username]:bean属性'username'不可读或具有无效的getter方法”。 虽然我有正确的表单bean,名称为username,但是我仍然收到了这个错误,你能帮我解决这个错误吗。。? 我的jsp页面在下面 下面提供了我的控制器

  • 为什么我会得到一个错误或未捕获的TypeError:不能设置null的属性'innerhtml'?我以为我了解innerHTML并且在此之前使用过它。

  • 我有一个简单的html页面,在body标记中没有代码。我想通过JavaScript在body标记中插入html。 我的javascript文件如下所示。 现在我想要这个很长的html代码在页面加载时自动插入到body标记中。但它给了我我在标题中提到的错误。为什么? 而且这也是创建基于ajax的网站的正确方法吗(不重新加载页面),这意味着如果我调用服务器端脚本来更新这个很长的html代码并将其附加到

  • 我正在开发一个Grails应用程序。我有一个带有一些属性的Groovy bean。我试图使用setter方法实例化和设置Java类中的一些属性。虽然我没有任何错误,但属性不包含任何值。我尝试在调试模式下查看对象内容:groovy对象包含1个唯一字段(r$fields),其中包含一个空的HashMap。 新潮豆 Java代码 添加作为Java代码中的最后一条语句,我得到以下NPE Stacktrac

  • 我发现了一个我不知道如何解决的问题。 如果使用这个模板,那么就没有问题: 例如,输出为: 如果我编辑一个模板并尝试将“supplier.id”设置为html属性“data-supplierid”: 出现一个错误: