Q22: How do you handle multi-part file uploads in Express.js?

Difficulty:MediumTopic:File Processing

Express express.json() cannot parse multipart/form-data uploads. Multi-part uploads are handled using third-party middleware like multer.

Multer Upload Handler
const multer = require('multer');
const upload = multer({ dest: 'uploads/' });

// Single file input field named 'avatar'
app.post('/profile', upload.single('avatar'), (req, res) => {
  console.log(req.file); // Metadata of uploaded file
  console.log(req.body); // Text fields submitted with form
  res.send('File uploaded successfully');
});
💡 Multer intercepts multi-part data, saves files to destination directories, and attaches metadata to req.file.
Key Takeaways
  • Use upload.single('field') for single files or upload.array('fields') for multiple files.
  • Always restrict file upload size limits and enforce file extension validation rules.