驴Qu茅 es el filesystem (sistema de archivos)?
-
Creamos nuestro
app.js
. -
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. -
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 mensajeFin!
se ejecutar谩 antes queconsole.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.