Upload con Node.js


Uno de los temas que quedaron pendientes en los 2 talleres de Node.js impartidos por @codejobs fue mostrar un “Upload” de archivos. Para eso ocuparemos la dependencia formidable la cual nos facilitará el trabajo, es un módulo que se encarga de “parsear” datos.

Para instalar deben ingresar en su terminal de comandos lo siguiente:

npm install formidable

Una vez instalado vamos a cargar todos los módulos necesarios, en este caso http, util y formidable; así como definir la variable server.

var http = require(‘http’), util = require(‘util’), formidable = require(‘formidable’), server;

El siguiente paso será levantar nuestro servidor tal y como lo vimos en el primer curso de Node.js, si no recuerdas como aquí te dejo ese fragmento de código, el cual podrás verlo completo en el archivo fuente que te dejo al final del tutorial

server = http.createServer(function(req, res)

Y cuando hagamos una petición a nuestra dirección de servidor, en este caso localhost cargaremos un formulario que apuntará a nuestra petición de subir archivo, un input tipo file y un botón para realizar el submit.

res.end(
“<div align=’center’>”+
“<form action=’/uploadImage’ enctype=’multipart/form-data’ method=’post’>”+
“<p><input type=’file’ name=’upload’ multiple=’multiple’></p>”+
“<input type=’submit’ value=’Subir Archivo’>”+
“</form></div>”
);

Si ya hicimos “Submit” de nuestro formulario junto con el archivo seleccionado entonces ocuparemos new formidable.IncomingForm(), para indicar que estamos creando un formulario entrante.

Después indicaremos la dirección donde subiremos nuestro archivo, en mi caso seleccione la misma carpeta donde tengo mi proyecto: form.uploadDir = ‘/Users/yesidiaz/Documents/nodejs’;

Una vez terminado de subir el archivo seleccionado desplegaremos en el navegador nuestra información resultante, utilizando la llamada util.inspect(files), nos permite representar los datos de nuestro objeto de una forma legible.

Únicamente para ejecutar su archivo deben escribir node upload.js y para verificar visitar http://localhost:3000

Si desean más información pueden enviarme una mención o visitar la documentación de Node.js

Código fuente | Gist
Silvercorp | Twitter
Codejobs | Twitter
API Node.Js  | Sitio Oficial

Anuncios

Acerca de silvercorp

Blog personal de Ye§i creado el 18/Ag/06 enfocado al diseño gráfico, tecnología y programación.

Publicado el mayo 3, 2012 en Sin categoría. Añade a favoritos el enlace permanente. 2 comentarios.

  1. Nice! Funciona con Express? Porque eso de andar haciendo cosas a mano no me convence.

    Unos screenshots y un plugin para mostrar el código no caerían nada mal 🙂

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: