Performance: Storing files on disk vs memory
This affects server response time and resource usage during file uploads and downloads.
Jump into concepts and practice - no test required
const multer = require('multer'); const upload = multer({ dest: 'uploads/' }); app.post('/upload', upload.single('file'), (req, res) => { // File saved on disk automatically res.send('File saved on disk'); });
app.post('/upload', (req, res) => { let fileData = []; req.on('data', chunk => fileData.push(chunk)); req.on('end', () => { const fileBuffer = Buffer.concat(fileData); // Process file in memory res.send('File received in memory'); }); });
| Pattern | Memory Usage | CPU Load | Response Time Impact | Verdict |
|---|---|---|---|---|
| Store files in memory | High (depends on file size) | High (buffering large files) | Can block event loop causing slow response | [X] Bad |
| Store files on disk with streaming | Low (buffers small chunks) | Moderate (I/O overhead) | More stable response times for large files | [OK] Good |
const upload = multer({ storage: multer.memoryStorage() });
app.post('/upload', upload.single('file'), (req, res) => {
console.log(req.file.buffer.length);
res.send('File size: ' + req.file.size);
});const upload = multer({ storage: multer.diskStorage({
destination: './uploads',
filename: (req, file, cb) => cb(null, file.originalname)
}) });
app.post('/upload', upload.single('file'), (req, res) => {
res.send('File saved');
});