File Too Large Error Handling Nodejs Express Multer
10,259
Solution 1
try rewrite like this (remove "upload" first):
app.post('/', function (req, res) {
upload(req, res, function (err) {
if (err) {
console.log("cs " + err);
return
}
res.end('You new avatar is uploaded')
// Everything went fine
})
Solution 2
I've created an Express handler in the end of server.js
file.
- place handler function after all
app.use()
, check if this error from multer and send data you needed. My code sendsLIMIT_FILE_SIZE
string.
app.use(() => (err: Error, req: Request, res: Response, next: NextFunction) => {
if (err instanceof multer.MulterError) {
return res.status(418).send(err.code);
}
});
Docs: http://expressjs.com/en/guide/error-handling.html#error-handling
Author by
sssaini
Updated on June 17, 2022Comments
-
sssaini almost 2 years
I am using multer with ExpressJS. I want to limit file uploads to 0.5 MB.
var limits = { fileSize: 0.5 * 1024 * 1024 }; var upload = multer({ dest: './public/uploads/', limits: limits }).single('upl') app.post('/',upload, function (req, res) { upload(req, res, function (err) { if (err) { console.log("cs " + err); return } res.end('You new avatar is uploaded') // Everything went fine }) })
When the file is under 0.5 MB I can see 'You new avatar is uploaded' but when it is over I get,
Error: File too large at makeError (C:\Users\Owner\Desktop\nodejs projects\dummy\node_modules\multer\lib\make-error.js:12:13) at abortWithCode (C:\Users\Owner\Desktop\nodejs projects\dummy\node_modules\multer\lib\make-middleware.js:77:22) at FileStream.<anonymous> (C:\Users\Owner\Desktop\nodejs projects\dummy\node_modules\multer\lib\make-middleware.js:139:11) at emitNone (events.js:80:13) at FileStream.emit (events.js:179:7) at PartStream.onData (C:\Users\Owner\Desktop\nodejs projects\dummy\node_modules\busboy\lib\types\multipart.js:220:18) at emitOne (events.js:90:13) at PartStream.emit (events.js:182:7) at readableAddChunk (_stream_readable.js:153:18) at PartStream.Readable.push (_stream_readable.js:111:10)
Obviously I would never want the end user to see this. How can I handle this properly?
-
sssaini almost 8 yearsBut then how will I introduce the size limit?
-
KibGzr almost 8 yearswrite like your code just remove upload middleware in app.post('/')