Estoy tratando de implementar una carga de imágenes usando cloudinary en un servidor express y todo funciona bien, pero el resultado del cargador de cloudinary es un objeto vacío por alguna razón y, por supuesto, la imagen no se está cargando.
subir ruta:
const router = require('express').Router() ; const cloudinary = require('cloudinary'); const auth = require('../middleware/auth'); const authAdmin = require('../middleware/authAdmin'); //cloudinary configs ... cloudinary.config({ cloud_name : process.env.CLOUD_NAME, api_key: process.env.CLOUD_API_KEY, api_secret: process.env.CLOUD_API_SECRET }); // upload image... router.post('/upload',auth , authAdmin, (req, res) =>{ try { if(!req.files || Object.keys(req.files).length === 0) return res.status(400).json({msg: 'No files were uploaded.'}); const file = req.files.file; if(file.size > 1024*1024) { removeTmp(file.tempFilePath); return res.status(400).json({msg: "Size too large"}); } if(file.mimetype !== 'image/jpeg' && file.mimetype !== 'image/png'){ removeTmp(file.tempFilePath); return res.status(400).json({msg: "File format is incorrect."}); } console.log(req.files) ; cloudinary.v2.uploader.upload(file.tempFilePath, {folder: "test"}, async(err, result)=>{ if(err) throw err; removeTmp(file.tempFilePath) res.json({public_id: result.public_id, url: result.secure_url}) }) } catch (err) { return res.status(500).json({msg: err.message}); } }); const removeTmp = (path) =>{ fs.unlink(path, err=>{ if(err) throw err; }) }; module.exports = router ;en el archivo .env:
CLOUD_API_KEY= API_KEY_HERE CLOUD_NAME: CLOUD_NAME_HERE CLOUD_API_SECRET= API_SECRET_HEREpor supuesto, tengo mi información real en el archivo, pero no puedo publicarla aquí por razones de seguridad.
cuando intento esta ruta en cartero, obtengo un objeto vacío como se ve en las siguientes fotos:
Intenté lo siguiente:
Pude resolver este problema con la ayuda del comentario de @Aleksandar.
después de devolver err en lugar de err.message, recibí el error "debe proporcionar el nombre de la nube".
después de eso, pude corregir el error fácilmente al proporcionar el nombre de nube correcto.