Cómo subir archivos al servidor con NodeJS

Existen librerías que hacen que subir archivos al servidor con Nodejs sea muy fácil y en este post te explico como usarlas.

Diseño web
2 minutos
Hace 6 años
Cómo subir archivos al servidor con NodeJS

¡Accede a cientos de cursos
con solo un pago al año!

Blog Microbanner

Como se dijo anteriormente en el post de ¿Cómo subir archivos al servidor con Go (golang) y Ajax? una de las tareas más comunes de un desarrollador hoy en día es subir archivos a un servidor y esta tarea es muy fácil de realizar con Nodejs.

En node existen librerias excelentes para subir archivos tales como Multer y Express-fileupload y en este tutorial utilizaremos este último, para subir nuestros archivos y guardarlos en un directorio específico de nuestro servidor.

Como primer paso crearemos una carpeta para desarrollar nuestro proyecto:

1mkdir file-upload-demo 2

Con la carpeta creada, el siguiente paso es iniciar el proyecto de Node con el siguiente comando:

1npm init -y 2

Ya con esto hecho podemos proceder a instalar las dependencias necesarias, express para configurar la ruta desde la que subiremos el archivo y la segunda servirá para subirlo:

1npm i -S express express-fileupload 2

Importamos las dependencias y configuramos la aplicación de express, en un nuevo archivo llamado app.js:

1const express = require('express') 2const fileUpload = require('express-fileupload') 3 4const app = express() 5 6app.use(fileUpload())

Ahora lo que haremos sera configurar la ruta que usaremos para subir el archivo.

1app.post('/upload',(req,res) => { 2 3})

Lo siguiente es agregar en la ruta, el código necesario para subir el archivo y para guardarlo en un directorio de nuestro servidor:

1app.post('/upload',(req,res) => { 2 let EDFile = req.files.file 3 EDFile.mv(`./files/${EDFile.name}`,err => { 4 if(err) return res.status(500).send({ message : err }) 5 6 return res.status(200).send({ message : 'File upload' }) 7 }) 8})

Básicamente lo que estamos haciendo es guardar en la variable EDFile, el archivo que estamos subiendo, después utilizamos el método mv() el cuál es el que ubica nuestro archivo en un lugar específico de nuestro servidor, en este caso será una carpeta en la raiz del proyecto llamada files, y a continuación ejecutamos un callback que recibe un error, verificamos si el error existe y de ser así lo informamos al usuario en caso contrario mandamos un codigo 200 informando el éxito de la operación.

Para terminar con el código en app.js, vamos a levantar el servidor de express con la siguiente linea de código:

1app.listen(3000,() => console.log('Corriendo'))

Para probar nuestro código vamos crear un archivo html en el cuál usaremos un formulario para subir nuestros archivos:

1<form action='http://localhost:3000/upload' method="POST" enctype="multipart/form-data"> 2 <input type="file" name="file"> 3 <input type="submit" value="Subir"> 4</form>

Espero que te haya gustado y recuerda que en EDteam tenemos un maravilloso curso de NodeJS para que amplies tus conocimientos en esta tecnología.

Hasta la próxima.

Comentarios de los usuarios

Pregunta a ChatEDT