multer посилання Для налаштування сховища ми скористаємося методом бібліотеки diskStorage. Налаштування сховища для бібліотеки multer включає два основні параметри: destination і filename.
// src/constants/index.js
export const TEMP_UPLOAD_DIR = path.join(process.cwd(), 'temp');
export const UPLOAD_DIR = path.join(process.cwd(), 'uploads');
// src/middlewares/multer.js
import multer from 'multer';
import { TEMP_UPLOAD_DIR } from '../constants/index.js';
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, TEMP_UPLOAD_DIR);
},
filename: function (req, file, cb) {
const uniqueSuffix = Date.now();
cb(null, `${uniqueSuffix}_${file.originalname}`);
},
});
export const upload = multer({ storage });
Приклад функціїт що буде перевіряти, чи існує директорія за вказаним шляхом (url). Якщо директорія не існує, то функція створить її
// src/utils/createDirIfNotExists.js
import fs from 'node:fs/promises';
export const createDirIfNotExists = async (url) => {
try {
await fs.access(url);
} catch (err) {
if (err.code === 'ENOENT') {
await fs.mkdir(url);
}
}
};