我的控制器中有一个更改用户数据的功能:
async editUser(req, res) {
try {
const { username, password, name, surname, patronymic, userRole } =
req.body;
var hashPassword = bcrypt.hashSync(password, 5);
User.findByIdAndUpdate(mongoose.Types.ObjectId(req.params.id), {
username,
password: hashPassword,
name,
surname,
patronymic,
roles: [userRole],
});
req.session.message = {
iconStyle: "check",
type: "check-Success",
intro: "Успешно",
message: "Информация обновлена.",
};
res.status(400).redirect("/users");
} catch (e) {
console.log(e);
res.status(400).json({ message: "nt" });
}
}
还有路线:
router.post("/editUser/(:id)", controller.editUser);
当通过邮递员发送一个帖子请求时,数据更改功能起作用,它读取我,但用户数据没有改变。req.body 当然是完整的并且 req.params.id 属于现有用户。我只是在学习,告诉我 - 可能是什么问题?
在 app.js 中,我们包含方法覆盖模块
在我们使用 post 的路由器中:
函数本身 // 输入用户变量,向数据库发出请求,保存这个变量 user.save() 也使用 { useFindAndModify: false }
这些解决方案帮助我解决了问题,很可能主要问题是我没有使用保存功能并且没有正确访问数据库,await bless rng