Servicio rest con nodejs, express 4 y mysql
Servicio rest con nodejs, express 4 y mysql

En este tutorial no vamos a ver simplemente como subir archivos con NodeJS y Express, sino que vamos a ver como comprobar las extensiones que nos intentan subir, sólo permitiendo las que nosotros queremos, comprobar si el archivo existe, y si es así, renombralo por otro para que no se pisen y devolver respuestas dependiendo de lo que suceda en la petición.

Subir archivos con NodeJS

Lo primero que debemos hacer es crear el proyecto con la ayuda de express, así que escribimos los siguiente comandos en la terminal de node.

Y a continuación, como nos dice la terminal lo siguiente.

El archivo app.js

Como ya debemos saber, ahora es hora de modificar el archivo app.js para poder sacar el proceso de enrutado de aquí y trasladarlo al archivo routes/index.js, así que abrimos el archivo app.js y reemplazamos todo el código por el siguiente.

Veamos la línea 16 del archivo, es necesaria para poder hacer la subida de archivos con NodeJS y Express.

El archivo routes/index.js

Eliminamos todo el contenido de este archivo y añadimos el siguiente.

En lo que nos debemos fijar es en ver como hacemos uso de fs(File System), el cuál nos permite trabajar con archivos.

;
Si te fijas, nuestros archivos irán guardados en public/uploads, así que si no lo has creado, hazlo ahora.

Finalmente sólo tenemos que abrir el archivo index.jade de la carpeta views y modificar el código por el siguiente para poder subir los archivos a través de un formulario.

Ahora ya es momento de poner a andar nuestra aplicación, así que podemos ejecutar el siguiente comando en nuestra terminal.

O si tenemos nodemon instalado:

Si has seguido los pasos correctamente y accedes a http://localhost:3000, debes ver sin ningún problema el formulario y debes poder subir archivos que estén permitidos, haz las modificaciones que necesites y se lo más creativo posible con el script, recuerda que ésto es sólo un ejemplo, no para ponerlo a andar en producción, hay más pasos que atender, saludos.