UNPKG

als-request

Version:

versatile HTTP client offering enhanced features for Node.js with functionality for speed limitation with events, CORS management, stream support, automatic data preparation, error and response handling, and more

25 lines 905 B
const busboy = require('busboy') const fs = require('fs'); const {join} = require('path') const downloadsPath = join(__dirname,'..','..','downloads') module.exports = function (req,res) { const bb = busboy({ headers: req.headers }); return new Promise((resolve,reject) => { let fields = [] let files = [] bb.on('file', (name, file, info) => { const filename = info.filename || name const writeStream = fs.createWriteStream(join(downloadsPath,filename)); info.name = name file.on('data', (data) => { info.size = data.length writeStream.write(data); }); files.push(info) file.on('end', () => writeStream.end()); }); bb.on('field', (name, val, info) => fields.push({[name]:val})); bb.on('close', () => resolve({files,fields})); req.pipe(bb); }) }