SharpCoder SharpCoder - 5 months ago 172
Node.js Question

Error handling when uploading file using multer with expressjs

I am using multer to save the file on server developed through express & nodejs.

I am usign following code.

var express = require('express'),
multer = require('multer')

var app = express()

app.get('/', function(req, res){
res.send('hello world');
});'/upload',[ multer({ dest: './uploads/'}), function(req, res){



Multer saves the file for me in the specified destination folder.

All this is working fine but I have following questions:

  1. If the file saving fails for various reasons, it looks like my route will always return status 204.

  2. I am not sure if status 204 is retured after file is saved or while the file is getting saved asynchronously, status 204 is returned.


You can handle errors using the onError option:'/upload',[
    dest    : './uploads/',
    onError : function(err, next) {
      console.log('error', err);
  function(req, res) {

If you call next(err), your route handler (generating the 204) will be skipped and the error will be handled by Express.

I think (not 100% sure as it depends on how multer is implemented) that your route handler will be called when the file is saved. You can use onFileUploadComplete to log a message when the upload is done, and compare that to when your route handler is called.

Looking at the code, multer calls the next middleware/route handler when the file has been uploaded completely.