node.js - 使用 axios 发布数据和文件

标签 node.js reactjs

我正在尝试使用 axios 发送对象文件。 但是,服务器似乎无法按照我的预期获取数据。

我尝试将 state = {number: 1} 作为数据与文件同时发送。

//react js

let formData = new FormData();
    formData.append('file', this.state.selectedImage);
    formData.append('data', this.state);
    axios.post('url is correct', formData, {
        headers: {
            'Content-Type': 'multipart/form-data'
        }
    });

我只是想确保以上是在客户端中同时发送数据和文件的正确方法。

//node 
.
.
.
body: { data: '[object Object]' },
  files:
   { file:
      { name: '232217736.png',
        data: <Buffer >,
        size: 43015,
        encoding: '7bit',
        tempFilePath: '\\tmp\\tmp-1-1560804010093',
        truncated: false,
        mimetype: 'image/png',
        md5: '84c3c16304d6140d960789e7037fba43',
        mv: [Function: mv] } }
.
.
.

以上是服务器从客户端获取的信息。但是,我无法处理数据。 当我使用 console.log() 时,数据不会显示其内容,并且我无法使用任何适用于 javascript 对象的方法。

最佳答案

您发送整个状态对象时出错。 对象具有不可见的 toString() 方法,用于显示 '[object Object]'。尝试:

alert({a: 'a', b: 'b'}) // [object Object]

您可以使用JSON.stringify:

JSON.stringify({a: 'a', b: 'b'})

并在后端使用JSON.parse

关于node.js - 使用 axios 发布数据和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56638845/

相关文章:

reactjs - react 、Redux 和重组 : "dispatch is not a function"

javascript - espressjs、node、mongo保存方法

javascript - React 内联样式 - style prop 需要从样式属性到值的映射,而不是字符串

javascript - 是否可以使用 Kotlin 构建完整的 Node.js Web 应用程序?

node.js - 对 Node.js 单线程执行模型感到非常困惑

reactjs - react 过滤列表

css - 在测试环境中将测试数据属性设置为 react 应用程序中的 anchor

reactjs - Webpack(v 3.0.0)开发模式下的 validateSchema 错误

node.js - 错误 : Can't add new command when connection is in closed state

node.js - 针对不同用户重复实现服务器功能