Skip to content

Commit a946f14

Browse files
authored
Merge pull request #380 from AdrianSchneider/fixCrashOnTwoErrors
Prevent Multiple Errors from Crashing
2 parents c6fee61 + 2e3d9d8 commit a946f14

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

lib/make-middleware.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ function makeMiddleware (setup) {
5757
}
5858

5959
function abortWithError (uploadError) {
60+
if (errorOccured) return
6061
errorOccured = true
6162

6263
pendingWrites.onceZero(function () {

test/error-handling.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
var assert = require('assert')
44

5+
var os = require('os')
56
var util = require('./_util')
67
var multer = require('../')
78
var stream = require('stream')
@@ -203,4 +204,20 @@ describe('Error Handling', function () {
203204
done()
204205
})
205206
})
207+
208+
it('should gracefully handle more than one error at a time', function (done) {
209+
var form = new FormData()
210+
var storage = multer.diskStorage({ destination: os.tmpdir() })
211+
var upload = multer({ storage: storage, limits: { fileSize: 1, files: 1 } }).fields([
212+
{ name: 'small0', maxCount: 1 }
213+
])
214+
215+
form.append('small0', util.file('small0.dat'))
216+
form.append('small0', util.file('small0.dat'))
217+
218+
util.submitForm(upload, form, function (err, req) {
219+
assert.equal(err.code, 'LIMIT_FILE_SIZE')
220+
done()
221+
})
222+
})
206223
})

0 commit comments

Comments
 (0)