GFXARGENTINA
    Blog
  • Portfolio
  • Contacto
Como subir una imagen a Cloudinary con Nodejs, Express y Multer
gfxargentina

gfxargentina

02-07-2022

Como subir una imagen a Cloudinary con Nodejs, Express y Multer

Que tal gente, les comparto la funcionalidad para subir una imagen a Cloudinary en nodejs con Express, MongoDB, Mongoose y Multer.

Voy a tratar de explicarlo de la manera que yo lo entendi, les aclaro que no soy un experto en programación, si ven algo que esta mal o que se pueda hacer de mejor manera, porfavor envien un comentario y lo cambio.

ACLARACION: esto no es un tutorial paso a paso, se necesita un poco de conocimiento de nodejs, express, estoy documentando mi proceso de aprendizaje en nodejs , escribir me ayuda a retener mejor los conceptos, sigo el consejo de Gonzalo Pozzo, vayan a seguirlo.

Para los que no lo sepan Cloudinary es una empresa que ofrece servicios de gestión de imágenes y vídeos basados en la nube, tiene una suscripción gratuita muy generosa, pueden visitar su pagina aqui Cloudinary.

Cuando un cliente web sube un archivo a un servidor, generalmente lo envía a través de un formulario y se codifica como multipart/form-data , Multer es un middleware para Express y Node.js que hace que sea fácil manipular este multipart/form-data  cuando los usuarios suben archivos.

¿Cómo funciona Multer?

Como dije anteriormente, Multer es un middleware para Express. Un middleware es una pieza de software que conecta diferentes aplicaciones o componentes de software. En Express, un middleware procesa y transforma las peticiones entrantes en el servidor. En nuestro caso, Multer actúa como un ayudante al cargar archivos.

Ahora paso a explicar los pasos que segui para poder subir archivos:

primero instalamos el sdk de cloudinary para nodejs

npm install cloudinary

despues instalamos multer

npm install --save multer

Creamos una carpeta utils donde crearemos las funciones cloudinary.js y multer.js

Para utilizar cloudinary necesitamos configurar algunos parametros para hacer llamados seguros a la api de cloudinary , tienen que crearse una cuenta y tener a mano lo siguiente: cloud_name, api_key y api_secret, despues de crearse su cuenta encontraran estos parametros en el dashboard de cloudinary

en el archivo cloudinary.js escribimos las configuraciones para usar cloudinary globalmente

siempre es recomendado usar las variables de entorno .env para que cuando subas tu proyecto a github no subas los parametros de cloudinary al repositorio, porque si alguien viera esos parametros podria ver todos los archivos que tenes en cloudinary y borrarlos si quisiera.

Si no sabes lo que son las variables de entorno te recomiendo esta guia: Variables de Entorno en Nodejs

ahora el codigo para el archivo multer.js, hacer click derecho ver imagen para agrandar y ver el codigo comentado

en nuestras rutas requerimos la funcion multer y creamos la ruta post, linea 16, upload.single(’imagen’) es para pasarle en el request la imagen al controlador

el codigo del controlador

Video probando la api con postman, primero no elijo ninguna imagen ,despues subo una imagen con una extension no permitida y al ultimo subo una imagen con una extension permitida.

Si llegaste hasta aqui te agradeceria dejaras en los comentarios cualquier critica, es bienvenida, muchas gracias

Fuentes que utilize:

Multer

Video

Video

Cloudinary

Modulo Path

gfxargentina

gfxargentina

Motion graphics - Web Development

Escribir un Comentario