Q22: How do you handle multi-part file uploads in Express.js?
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 orupload.array('fields')for multiple files. - Always restrict file upload size limits and enforce file extension validation rules.