Estoy intentando crear un directorio basado en el cuerpo de la solicitud. Aquí está el código:
const storage = multer.diskStorage({ destination: function(request, file, callback) { let userUploadDir = uploadDir + '/' + request.body.user + '/' + request.body.address; fs.access(userUploadDir, async (err) => { if (err) { await fs.promises.mkdir(userUploadDir, { recursive: true }); } }); callback(null, userUploadDir); }, filename: function(request, file, callback) { let date = new Date(); let stringDate = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() + "-" + date.getHours() + "-" + date.getMinutes(); let newFileName = stringDate + "-" + file.originalname; callback(null, newFileName); }, fileFilter: function(request, file, callback) { let ext = path.extname(file.originalname); if (ext !== ".png" && ext !== ".jpg" && ext !== ".jpeg" && ext !== ".webp") { return callback(new Error("Only images are allowed")); } callback(null, true); } }); const upload = multer({ storage: storage, limits: { fileSize: 1024 * 1024 * 5 } }); router.post("/image", upload.fields([{ name: 'file', maxCount: 3 }]), async (request, response, next) => { response.json({ "message":"Successful file uploaded." }) }
Mi problema es que cuando se ejecuta este código, creará el directorio, pero el archivo no se guardará en él y no puedo entender qué estoy haciendo mal aquí.