()
| 7 | } |
| 8 | |
| 9 | function fileApi() { |
| 10 | return function (req, res, next) { |
| 11 | var queryString = ''; |
| 12 | |
| 13 | req.files = {}; |
| 14 | req.images = {}; |
| 15 | |
| 16 | req.busboy.on('file', function (fieldname, file, filename, encoding, mimetype) { |
| 17 | var buffersArray = []; |
| 18 | |
| 19 | file.on('data', function (data) { |
| 20 | buffersArray.push(data); |
| 21 | }); |
| 22 | |
| 23 | file.on('end', function () { |
| 24 | var bufferResult = Buffer.concat(buffersArray); |
| 25 | var fileObj = { |
| 26 | name: filename, |
| 27 | type: mimetype, |
| 28 | mime: mimetype, |
| 29 | size: bufferResult.length, |
| 30 | dataURL: convertToBase64(bufferResult, mimetype) |
| 31 | }; |
| 32 | |
| 33 | req.files[fieldname] = fileObj; |
| 34 | |
| 35 | if (mimetype.indexOf('image/') === 0) { |
| 36 | fs.writeFileSync(filename, bufferResult); |
| 37 | |
| 38 | var size = imageSize(filename); |
| 39 | |
| 40 | fileObj.width = size.width; |
| 41 | fileObj.height = size.height; |
| 42 | |
| 43 | req.images[fieldname] = fileObj; |
| 44 | |
| 45 | fs.unlinkSync(filename); |
| 46 | } |
| 47 | }); |
| 48 | }); |
| 49 | |
| 50 | req.busboy.on('field', function (key, value) { |
| 51 | queryString += encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&'; |
| 52 | }); |
| 53 | |
| 54 | req.busboy.on('finish', function () { |
| 55 | req.body = qs.parse(queryString); |
| 56 | |
| 57 | next(); |
| 58 | }); |
| 59 | }; |
| 60 | } |
| 61 | |
| 62 | module.exports = fileApi; |
no test coverage detected