multer图片上传补丁请求

问题描述

我有一个代码,可以使用multer在nodejs中上载带有某些字段名称和单个图像的表单。在POST请求中上传新文件时,一切正常。同样,用于更改图像的PATCH请求也可以正常工作。但是,问题在于,如果我只需要更改图像而不是service_name,它将使该字段无效,而不是保留创建新POST时提供的先前名称。

补丁请求

    exports.editService = async (req,res) => {
    const { id } = req.params;
    const { service_name } = req.body;

    const updates = {};

    if (req.body) {
        updates.service_name = service_name;
    }

    if (req.file) {
        const service_pic = req.file.filename;
        updates.service_pic = service_pic;
    }

    try {
        const updated_data = await Services.findOneAndUpdate({ _id: id },{
            $set: updates
        },{
                new: true
            }
        );
        if (!updated_data) {
            res.status(404).json({ message: "Data does not exist" });
            return;
        }
        res.status(200).json({ message: "Data updated",result: updated_data });

    } catch (error) {
        res.status(500).json({ message: "Internal server error",error });
    }
}

在PATCH / PUT请求中,service_name始终为null

邮递员结果:

{
    "message": "Data updated","result": {
        "_id": "5f3648f8aefb2978e8f82d94","service_name": null,"service_pic": "service_pic-1597396108999TIME-CLOCK-service.png","createdAt": "2020-08-14T08:19:04.013Z","updatedAt": "2020-08-14T09:08:29.012Z","__v": 0
    }
}

不确定我在哪里处理错误。感谢您为纠正此问题提供的任何帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...