Performance: Multer middleware setup
This affects the server-side processing speed and the time before the server can respond to file upload requests.
Jump into concepts and practice - no test required
const multer = require('multer'); const storage = multer.diskStorage({ destination: (req, file, cb) => cb(null, 'uploads/'), filename: (req, file, cb) => cb(null, Date.now() + '-' + file.originalname) }); const upload = multer({ storage: storage, limits: { fileSize: 5 * 1024 * 1024 }, // 5MB limit fileFilter: (req, file, cb) => { if (file.mimetype.startsWith('image/')) cb(null, true); else cb(new Error('Only images allowed'), false); } }); app.post('/upload', upload.single('file'), (req, res) => { res.send('File uploaded safely'); });
const multer = require('multer'); const upload = multer({ dest: 'uploads/' }); app.post('/upload', upload.single('file'), (req, res) => { // process file res.send('File uploaded'); });
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Default Multer with no limits | N/A (server-side) | N/A | N/A | [X] Bad |
| Multer with file size/type limits | N/A (server-side) | N/A | N/A | [OK] Good |
multer middleware in an Express application?multer().upload.single('fieldname'). Here, 'avatar' is the field name.const multer = require('multer');
const upload = multer({ dest: 'uploads/' });
app.post('/profile', upload.single('photo'), (req, res) => {
res.send(req.file.path);
});
What will be the response when a user uploads a file named 'pic.jpg' in the 'photo' field?const multer = require('multer');
const upload = multer({ dest: 'uploads/' });
app.post('/upload', upload.single('file'), (req, res) => {
console.log(req.files);
res.send('Upload complete');
});
What is the problem with this code?destination as string or function(req, file, cb); filename must be function(req, file, cb).cb(null, Date.now() + '-' + file.originalname).const storage = multer.diskStorage({ destination: 'images', filename: (req, file, cb) => { cb(null, Date.now() + '-' + file.originalname); } }); const upload = multer({ storage }); uses valid string destination and correct filename.