We store files either on disk or in memory to handle uploads. Disk storage saves files on your server's hard drive. Memory storage keeps files temporarily in RAM.
0
0
Storing files on disk vs memory in Express
Introduction
When you want to save uploaded files permanently for later use.
When you need to process files quickly without saving them.
When your server has limited disk space but enough memory.
When you want to avoid writing files to disk for security reasons.
When you want to handle small files fast before deciding to save or discard.
Syntax
Express
const multer = require('multer'); // Disk storage setup const storageDisk = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'uploads/'); }, filename: function (req, file, cb) { cb(null, file.originalname); } }); // Memory storage setup const storageMemory = multer.memoryStorage(); const uploadDisk = multer({ storage: storageDisk }); const uploadMemory = multer({ storage: storageMemory });
Disk storage saves files physically on your server.
Memory storage keeps files in RAM as buffers, temporary and fast.
Examples
This route saves the uploaded file to disk in the 'uploads/' folder.
Express
app.post('/upload-disk', uploadDisk.single('file'), (req, res) => { res.send('File saved on disk: ' + req.file.path); });
This route keeps the uploaded file in memory and shows its size.
Express
app.post('/upload-memory', uploadMemory.single('file'), (req, res) => { const fileBuffer = req.file.buffer; res.send('File received in memory, size: ' + fileBuffer.length + ' bytes'); });
Sample Program
This Express app has two routes: one saves uploaded files to disk, the other keeps them in memory. You can test by sending files to each route.
Express
const express = require('express'); const multer = require('multer'); const app = express(); // Disk storage setup const storageDisk = multer.diskStorage({ destination: (req, file, cb) => cb(null, 'uploads/'), filename: (req, file, cb) => cb(null, file.originalname) }); // Memory storage setup const storageMemory = multer.memoryStorage(); const uploadDisk = multer({ storage: storageDisk }); const uploadMemory = multer({ storage: storageMemory }); app.post('/upload-disk', uploadDisk.single('file'), (req, res) => { res.send('File saved on disk: ' + req.file.path); }); app.post('/upload-memory', uploadMemory.single('file'), (req, res) => { const size = req.file.buffer.length; res.send('File received in memory, size: ' + size + ' bytes'); }); app.listen(3000, () => console.log('Server running on http://localhost:3000'));
OutputSuccess
Important Notes
Disk storage is better for large files or permanent saving.
Memory storage is faster but uses RAM and is temporary.
Always check file size limits to avoid memory overload.
Summary
Disk storage saves files physically on your server.
Memory storage keeps files temporarily in RAM for quick use.
Choose storage based on file size, speed, and persistence needs.