1

我有一个使用axios节点服务器发出请求的应用程序,该节点服务器又向另一个java 服务器发出请求。

从客户端调用节点服务器:

// here payload is FormData()
axios.post(url, payload).then((response) => {
    return callback(null, response);
}).catch((err) => {
    return callback(err, null);
});

在节点服务器中,我使用busboy收听请求:

let rawData = '';
const busboy = new Busboy({headers: req.headers});

busboy.on('file', function (fieldname, file, filename, encoding, mimetype) {
    file.on('data', function (chunk) {
        rawData += chunk;
    });
});

现在 java 服务器也需要 FormData(就像我将它发送到节点的方式一样)。我现在如何从节点获取 FormData?我一直在努力搜索并徒劳地尝试了很多东西。任何不涉及busboy的解决方案也会有所帮助。

4

1 回答 1

1

我终于使用了中间件busboy-body-parser,它增加了对从请求对象获取文件为req.files的支持。一旦文件存在,我使用form-data npm 包将其作为 form-data 发送到 java Web 服务器。在Express.js中默认支持req.files。但从 4.x 开始,它已被弃用

Multer是另一个非常好的处理multipart/form-data 的中间件。

于 2016-06-21T09:03:57.070 回答