You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js使用express+multer接收Nuxt前端数组仅返回[object Object]问题

问题原因
  • FormData.append()方法仅支持传入字符串、Blob、File三种类型的参数,你直接将对象数组传入时,JavaScript会自动调用toString()方法做隐式类型转换,对象数组的转换结果就是你收到的[object Object],[object Object]
  • 当前请求是携带文件的multipart/form-data类型,这类请求由multer负责解析,body-parser默认不会处理该类型请求体,不存在body-parser配置错误的问题
解决方案

前端Nuxt代码修改

将数组序列化为JSON字符串后再传入FormData:

async savePost() {
      const data = new FormData()
      data.append('postTitle', this.postTitle)
      // 改动点:数组转JSON字符串
      data.append('content', JSON.stringify(this.array))
      data.append('mainImage', this.selectedFile, this.selectedFile.name)

      const blogPost = await this.$axios.$post('/api/create-blog-post', data)

      if (blogPost.success) {
        console.log(blogPost)
      }
    },

后端Node代码修改

收到内容后反序列化为原数组即可:

exports.createBlogPost = async (req, res) => {
    console.log(req.body)
    try {
        const post = new BlogPost({
            postTitle: req.body.postTitle,
            // 改动点:JSON字符串转回原数组
            content: JSON.parse(req.body.content),
            mainImage: req.file
        })
        await post.save()

        if(post) {
            return res.status(200).json({
                success: true,
                message: 'Saved blog post successfully',
                post: post
            })
        }
    } catch(err) {
        console.log(err)
        return res.status(500).json({success: false, message: '保存失败'})
    }
}

提示:建议给JSON.parse逻辑增加单独的异常捕获,避免传入非法JSON格式时服务端抛出未处理错误。

内容的提问来源于stack exchange,提问作者Philippe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:45:03