馃敟 NODE.JS FILESYSTEM: MANEJO DE ARCHIVOS EN TU PROYECTO

Node.js FileSystem: Manejo de archivos en tu proyecto

驴Qu茅 es el filesystem (sistema de archivos)?

  1. Creamos nuestro app.js.

  2. Inicializamos el modulo fs (filesystem).

    // Llamar modulo fs
    var fs = require("fs");
    
    // Llamar de manera s铆ncrona.
    var texto = fs.readFileSync(__dirname + "/texto.txt", "utf8");
    
    // Imprimir el texto
    console.log(texto);
    

    En el ejemplo, estamos viendo como sin utilizar un callback podemos ejecutar l铆nea por l铆nea nuestro c贸digo. Esto debido a que la funci贸n readFileSync es s铆ncrona, espera hasta que el buffer este lleno y mientras detiene su valor. Sin embargo esto no es el comportamiento en muchas aplicaciones, pues puede ser que m煤ltiples usuarios est茅n usando la misma aplicaci贸n leyendo el mismo archivo y al mismo tiempo.

  3. Vamos a cambiar un poco el c贸digo, para hacerlo as铆ncrono.

    // Llamar modulo fs
    var fs = require("fs");
    
    // Llamar de manera s铆ncrona.
    fs.readFile(__dirname + "/texto.txt", "utf8", function (error, datos) {
        // Imprimir el texto
        console.log(datos);
    });
    
    // Imprimir fin
    console.log("Fin!");
    

    Hay que tomar en cuenta que muchas de las funciones que act煤an como callbacks son Error-First Callback, es decir, que el primer par谩metro que env铆an es el objeto error, si este error no existe regresan null. Este es el caso de la funci贸n callback de readFile.

    La funci贸n readfile es as铆ncrona, cuando la invocamos el callback se disparar谩 cuando termine de leer el archivo, pero el c贸digo continua su ejecuci贸n, es decir que el mensaje Fin! se ejecutar谩 antes que console.log(datos).

Los callbacks se disparan solo cuando se completa su ejecuci贸n, y las funciones as铆ncronas no bloquean la continuaci贸n de la ejecuci贸n del c贸digo.