我有一个包含多个上传的Express应用程序。我正在使用busboy来访问multipart。我必须将文件发送到外部API服务器。目前,我使用fs.createWriteStream()
将所有文件上传到目录,然后在使用fs.createReadStream
读取文件后,将文件发送到外部API服务器。如何在上传所有文件并读取所有文件后获得回调函数?或者我可以直接将文件发送到外部服务器而不将其保存在快速服务器中吗?这是我的代码,
exports.create(req, res, next) => {
req.pipe(req.busboy);
let fileCount = 0;
let filesToSent = [];
req.busboy.on('file', (fieldname, file, filename, encoding, mimetype) => {
let fileNameArray = filename.split('.'),
fileExtension = fileNameArray[fileNameArray.length - 1],
d = new Date(),
fileNameToSave = d.getFullYear().toString() + (d.getMonth() + 1).toString() + d.getDate().toString() + d.getTime().toString() + '_' + fileCount + '.' + fileExtension;
fileCount += 1;
let fileUpload = file.pipe(fs.createWriteStream('./app/tempupload/' + fileNameToSave));
fileUpload.on('finish', () => {
let uploadedFile = fs.createReadStream('./app/tempupload/' + fileNameToSave);
uploadedFile.on('finish', () => {
filesToSent.push(uploadedFile);
console.log(filesToSent);
});
});
});
}