const express = require('express'); const multer = require('multer'); const path = require('path'); const fs = require('fs'); const app = express(); const port = 3000; app.use(express.static('public')); const storage = multer.diskStorage({ destination: (request, file, callBack) => { callBack(null, 'public/uploads/'); }, filename: (request, file, callBack) => { const name = path.extname(file.originalname); const direction = 'public/uploads/'; let count = 0; while (fs.existsSync(`${direction}${count}${name}`)) { count++; } callBack(null, `${count}${name}`); }, }); const upload = multer({ storage: storage, limits: { fileSize: 10 * 1024 * 1024 }, fileFilter: (request, file, callBack) => { const allowedFileExtensions = ['.jpg', '.jpeg', '.png', '.svg']; const name = path.extname(file.originalname).toLowerCase(); if (allowedFileExtensions.includes(name)) { return callBack(null, true); } else { return callBack('ERROR'); } }, }); app.post('/upload', upload.single('image'), (request, response) => { response.send('SUCCESSFULLY!'); }); app.listen(port, () => { console.log(`SERVER STARTED ON POR ${port}`); });