我正在使用 findByIdAndUpdate 更新数据库中的用户信息:
exports.updateUser = (req, res) =\> {
User.findByIdAndUpdate(
{ \_id: req.profile.\_id },
{ $set: req.body },
{ new: true, useFindAndModify: false },
(err, user) =\> {
if (err) {
return res.status(403).json({
error: " user are not authorized to update this user",
});
}
user.salt = undefined;
user.encry_password = undefined;
res.json(user);
}
);
};
使用邮递员检查更新时出现错误:
"error": " no user was found";
route 正在运行并且它已连接到数据库。
路线是:
router.put("/user/:userId", isSignedIn, isAuthenticated, updateUser);
已登录代码:
exports.isSignedIn = expressJwt({
secret: process.env.SECRET,
userProperty: "auth",
});
是认证码:
exports.isAuthenticated = (req, res, next) =\> {
let checker = req.profile && req.auth && req.profile.\_id == req.auth.\_id;
if (!checker) {
return res.status(403).json({
error: "access denied",
});
}
下一个(); };
我已经检查了数据库连接、中间件和路由。