我正在尝试更新用户个人资料信息数据库

问题描述 投票:0回答:1

enter image description hererouter.post('/profile/update', isLoggedIn, function(req, res, next) { const userId = req.user._id;

userModel.findById(userId, function(err, user) {
if (err) {
  return next(err);
}

// Update user profile details
user.username = req.body.username || user.username;
user.email = req.body.email || user.email;
user.contact = req.body.contact || user.contact;
user.name = req.body.name || user.name;

// Save the updated user
user.save(function(err) {
  if (err) {
    return next(err);
  }

  res.redirect("/profile");
});

}); });

我正在尝试更新用户个人资料信息数据库,但此代码不起作用并给我发送一些错误:

  • ”无法读取未定义的属性(读取'_id')“When i click update button show this error
node.js express mongoose passport.js multer
1个回答
0
投票

正如错误所说,你不能再在 Mongoose 中使用回调,你必须使用 async-await 代替,并使用 try-catch 来处理可能发生的任何错误:

try {
const user = await userModel.findById(userId);
response.status(200).json({
      status: "success",
      user,
      
    }
}
} catch (error) {
    response.status(404).json({
      status: "fail",
      messaga: error.message,
      
    })

不要忘记用

async
关键字

标记你的处理程序
© www.soinside.com 2019 - 2024. All rights reserved.