![enter image description here](https://istack.dev59.com/3QWOv.webp)
router.post('/fileUpload', (req, res) => {
console.log(req.body);
res.status(200).json({ msg: "Got file" });
});
router.post('/fileUpload', (req, res) => {
console.log(req.body);
res.status(200).json({ msg: "Got file" });
});
您可以使用form-data
模块从Node.js应用程序发送multipart/form-data。以下是您可以在Server1上实现的代码,用于接收来自客户端的图像文件并将其发送到Server2。
const express = require("express");
const app = express();
const bodyParser = require('body-parser');
var multer = require('multer')();
const FormData = require('form-data');
const axios = require('axios');
const fs = require('fs');
app.use(bodyParser.json());
app.post('/fileUpload' , multer.single('fileFieldName'), (req , res) => {
const fileRecievedFromClient = req.file; //File Object sent in 'fileFieldName' field in multipart/form-data
console.log(req.file)
let form = new FormData();
form.append('fileFieldName', fileRecievedFromClient.buffer, fileRecievedFromClient.originalname);
axios.post('http://server2url/fileUploadToServer2', form, {
headers: {
'Content-Type': `multipart/form-data; boundary=${form._boundary}`
}
}).then((responseFromServer2) => {
res.send("SUCCESS")
}).catch((err) => {
res.send("ERROR")
})
})
const server = app.listen(3000, function () {
console.log('Server listening on port 3000');
});
这里使用multer
处理上传的文件
const formData = new FormData();
formData.append('query', updateDocQuery);
formData.append('variables', JSON.stringify(this.setUpdateDocParams() || {}));
for (let i = 0; i < fileArr.length; i++) {
formData.append(`file${i}`, fileArr[i])
}
你可以将查询变量和文件附加到formData中,并将formData传递给body。
res.file
时遇到了问题,它会发送请求但没有文件。有没有实际的例子可以完成这个任务?我能够使用fs.createReadStream从服务器1上的磁盘读取文件并成功发送。 - Pini Cheyni