Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Multer图像上载修补程序请求_Node.js_Mongodb_Multer - Fatal编程技术网

Node.js Multer图像上载修补程序请求

Node.js Multer图像上载修补程序请求,node.js,mongodb,multer,Node.js,Mongodb,Multer,我有一个代码,可以使用multer在nodejs中上传一个表单和一些字段名&一个单独的图像。在POST请求中上载新文件时,一切正常。此外,更改图像的修补程序请求工作正常。但是,问题是,如果我只需要更改图像,而不需要更改服务\u名称,它会使字段无效,而不是在创建新帖子时保留以前提供的名称 补丁请求 exports.editService = async (req, res) => { const { id } = req.params; const { service

我有一个代码,可以使用multer在nodejs中上传一个表单和一些字段名&一个单独的图像。在
POST
请求中上载新文件时,一切正常。此外,更改图像的修补程序请求工作正常。但是,问题是,如果我只需要更改图像,而不需要更改
服务\u名称
,它会使字段无效,而不是在创建新帖子时保留以前提供的名称

补丁请求

    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 });
    }
}
在修补程序/放置请求中,
服务\u名称
始终为
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
    }
}

不知道我在哪里处理错了。感谢您提供的任何帮助。

请求正文中有什么?@gypsyCoder它是
req.body.service\u name
这听起来像是MongoDB的问题。您需要检查
service\u name
而不是
if
语句中的
请求正文
。应该修复它没有问题,如果
req.body
是空的,它仍然计算为
true
。因此,
updates.service_name
在没有设置
req.body
中的内容时设置了一个值?@gypsyCoder它是
req.body.service_name
这听起来像是MongoDB问题,您需要在
if
语句中检查
service_name
而不是
req.body
。应该修复它没有问题,如果
req.body
是空的,它仍然计算为
true
。因此,
updates.service\u name
在没有可设置的值时被设置为一个值