无法使用 axios 和 form-data 发布数据或发送文件。

问题描述 投票:0回答:1

我正试图从我的nodejs应用中发布数据到一个端点。

我测试了使用Postman发送一些数据到那个端点,一切都很好,我得到了发布的数据,并且全部打印到了控制台。

但是当我使用axios从我的nodejs发送数据时,我总是在我的端点得到空的post数据,这是我的代码。

const FormData = require('form-data');
const axios = require('axios');

function send_to_test() {
    const endpoint = 'http://localhost:5000/test';
    const form = new FormData();
    form.append('string_var', 'some string');
    form.append('integer_var', 100);
    axios.post(endpoint, form, { headers: form.getHeaders() }).then((res) => {
        console.log(res.data);
    });
};

这里是我的端点(我使用express js服务器)。

app.post('/test', function(req, res) {
    console.log(req.body);
    res.json({
        status: 'success'
    });
});

无法让这个工作,请告知并提前感谢。

node.js express axios form-data
1个回答
0
投票

你需要在你的端点设置一个表单解析器。你可以利用formidable.代码作为参考。

const form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files) {
    if (err) {
         return res.status(400).json({ error: err.message });
    }
   res.json({
       status: 'success'
    });
}

我希望它能给你更好的画面!

© www.soinside.com 2019 - 2024. All rights reserved.