entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

En una pequeña aplicación que estoy escribiendo para aprender Node.js y por necesidad, tengo que subir un fichero en formato JSON que el usuario puede seleccionar de su pc. La información que contiene se almacena directamente en base de datos.

¿Alguien me podría orientar de como, desde el lado del servidor, subir dicho fichero y que es lo que hay que hacer para que, mientras se vaya subiendo, se pueda ir procesando el contenido del mismo (si esto es posible)?

Uso, a parte de Node.js, el framework express y el formulario que empleo para subir el fichero tiene el atributo: enctype="multipart/form-data"

Gracias.

1 Respuesta

2votos

juansolo Puntos1840

Lo he solucionado usando el módulo "busboy" de la siguiente forma:

var busboyHandler= require('busboy'),
    fs = require('fs'),
    os = require('os');
var loadData = function(req, res) {
    var busboy = new busboyHandler({ headers: req.headers }),
        saveTo;
    busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
        saveTo = path.join(os.tmpDir(), path.basename(fieldname));
        file.pipe(fs.createWriteStream(saveTo));
    });
    busboy.on('finish', function() {
        fs.readFile(saveTo, {encoding: 'utf-8'}, function(err,data){
            if (err){ console.log(err);
            procesarDatos( JSON.parse(data) );
        });
    });
}

Por ahora, desconozco si existe alguna solución mejor.

0voto

Peter comentado

Gracias por compartir la solución!

Por favor selecciona la respuesta como correcta :

Saludos.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta