如何在节点js中使用单个api保存文本字段值以及文件上传?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在节点js中使用单个api保存文本字段值以及文件上传?相关的知识,希望对你有一定的参考价值。

我有一个用例,在这种情况下,我需要将注册表单字段值保存到数据库中,并且还需要上传用户图像。

据我所知,我需要使用2种不同的api来存储表单字段值,并使用一种api来上传文件。像request.files这样上传的图像和request.body这样的原始数据。

是否可以在单个api中上传图像和表单字段值?我需要获取用户的id,以便可以将userId映射到图像。

答案

是的,您可以这样做。对于图像,您可以使用它的multer来存储图像(文件),并且还可以存储表单值。

有关参考,您可以访问link

您必须像在路由器中一样使用multer作为中间件

router.post('/addtype', upload.single("image"), (req, res) => {

 const newExample = new Example ({
        examplename: req.body.name,
        imagePath:'/images/' + req.file.filename
    })
    newExample .save()
        .then(result => {
            res.json(result)
        })
        .catch(error => {
            console.log(error)
        })
})

我在此示例中使用猫鼬,您可以对mongodbClient进行相同操作

以上是关于如何在节点js中使用单个api保存文本字段值以及文件上传?的主要内容,如果未能解决你的问题,请参考以下文章

如何从输入字段搜索文本到文本区域,以及如何使用 Jquery 标记匹配结果?

原生JS中DOM节点相关API合集

在编辑另一个文本字段 vue.js 时获取计算属性并传递其值

如何修改文本字段数组中选定的 UITexFiled 值

如何在节点 js 和 mongodb 中使用填充的字段键值名称进行搜索?

Twitter api 文本字段值被截断