如何使用NodeJS和Multer代理图像



我使用Postman将表单数据中的图像发送到我的服务器(1个请求(。在那之后,我必须在请求中发送这个图像,就像发送给第三方服务一样,但在头中有api密钥(2个请求(。当我从2请求中得到响应时,我需要将其发送回1请求。所以问题是:

如何从1请求中获取图像并将其放入2请求中?我不需要把它存储在我的服务器上,我只需要把它代理到第三方服务。我发现Multer可能会帮助我,但它从1个请求的文件中返回了一个看起来很奇怪的对象,我不知道该怎么处理这个

您应该使用express fileupload(临时存储文件的选项(并获取文件数据,即从中获取所有文件。然后,使用表单数据创建一个formData对象。最后,您可以将数据添加到表单对象并设置头,并将数据发送到任何API。

npm i express-fileupload --save 
npm i form-data --save

在您的项目中

const fileUpload = require('express-fileupload');
const FormData = require('form-data')
app.use(fileUpload());
app.post('/upload', async (request, response, next) => {
const { files } = request
const formData = new FormData()
for (let i = 0; i < files.length; i++) {
let file = files[i]
formData.append('files', file)
}
const formHeaders = formData.getHeaders(); // based on the need

// now you can send the form data to any end-point
// you can use axios to do that or any other lib
})

最新更新