router.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");
});
}); });
我正在尝试更新用户个人资料信息数据库,但此代码不起作用并给我发送一些错误:
正如错误所说,你不能再在 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
关键字标记你的处理程序