如何在node.js中的单个路由中同时发布文件和数据?

如何在node.js中的单个路由中同时发布文件和数据?,node.js,multipartform-data,multer,Node.js,Multipartform Data,Multer,我试图在一个node.js路由中上载图像和数据 我发现有一种叫做multipart/formdata的东西,但我无法使用它 我对上传数据和文件感到困惑,任何人都可以上传示例代码 但是,我可以通过提取任务模型的ID并进行更新来上传它,下面是我所做的代码 router.post('/task/avatar/:id', upload.single('taskavatar'), async (req, res) => { try { const task = await

我试图在一个node.js路由中上载图像和数据 我发现有一种叫做multipart/formdata的东西,但我无法使用它 我对上传数据和文件感到困惑,任何人都可以上传示例代码

但是,我可以通过提取任务模型的ID并进行更新来上传它,下面是我所做的代码

router.post('/task/avatar/:id', upload.single('taskavatar'), async (req, res) => {

    try {
        const task = await Task.findById(req.params.id)
        console.log(task["name"])
        if (!task) {
            return res.status(404).send({ "status": false })
        }
        task["taskavatar"] = req.file.buffer
        await task.save()
        res.send({ "message": "success" })
    } catch (err) { }
}, (error, req, res, next) => {
    res.status(400).send({ error: error.message })
})

从doc:Multer向请求对象添加一个body对象和一个或多个file对象。body对象包含表单文本字段的值,file或files对象包含通过表单上载的文件。您不能使用
req.body
获取您的数据吗?能否提供一个示例片段?我在这里的文档中触发了对PostMane示例的请求:。您没有显示客户端的外观,因此我不确定还有什么建议。我正在向postman发出请求这是我遵循的,请求=>post&body=>form data,这里图像的键是taskavatar,数据键是什么,在代码中,我在哪里提到数据值的键
let value=req.body.key
其中
key
是您在表单数据中为属性指定的任何名称。我不认识邮递员。可以尝试按照文档中的确切示例,在网页中发布实际表单。