在没有图像的情况下更新配置文件时出现内部服务器错误

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

我在更新用户个人资料时遇到内部服务器错误。当我使用新头像更新时它会更新,但在没有头像

更新时出现错误

后端代码

exports.updateProfile = catchAsyncErrors(async (req, res, next) => {

    const newUserData = {
        name: req.body.name,
        email: req.body.email,
    };

    // clodunary
    if (req.body.avatar !== "") {
        const user = await User.findById(req.user.id);
    
        const imageId = user.avatar.public_id;
    
        await cloudinary.v2.uploader.destroy(imageId);
    
        const myCloud = await cloudinary.v2.uploader.upload(req.body.avatar, {
          folder: "avatars",
          width: 150,
          crop: "scale",
        });
    
        newUserData.avatar = {
          public_id: myCloud.public_id,
          url: myCloud.secure_url,
        };
      }
    const user = await User.findByIdAndUpdate(req.user.id, newUserData, {
        new: true,
        runValidators: true,
        useFindAndModify: false
    })

    res.status(200).json({
        success: true
    })
});
node.js cloudinary internal-server-error
1个回答
0
投票

我遇到了同样的问题,如果给出了姓名或电子邮件以及 cloudinary,那么它将更新两者(或者如果所有三个都给出,那么它会正常工作),但是当只更新姓名或电子邮件或两者都没有 cloudinary 时,那么它将显示内部服务器错误。请建议解决方案,尝试使用 if(req.body.avatar!== "" && req.body.avatar !== undefined) 但仍然显示相同的内部服务器错误。

© www.soinside.com 2019 - 2024. All rights reserved.