NodeJS nos proporciona un módulo fs (Sistema de archivos) incorporado para varias operaciones de manejo de archivos, como leer un archivo, escribir un archivo, eliminar un archivo, etc. El módulo fs se puede instalar usando la siguiente declaración:
Sintaxis:
npm install fs --save
Nota: El npm en el comando anterior significa administrador de paquetes de Nodes desde donde se pueden instalar todas las dependencias en NodeJS.
Para usar el módulo fs, agregue la siguiente declaración en el código:
const fs = require('fs');
El módulo fs tiene diferentes operaciones para el manejo de archivos, como leer archivos, escribir archivos, agregar archivos, cerrar archivos, eliminar archivos, etc. Todas las operaciones se pueden realizar de forma sincrónica y asincrónica según los requisitos del usuario.
1. Métodos síncronos: las funciones síncronas bloquean la ejecución del programa hasta que se realiza la operación del archivo. Estas funciones también se denominan funciones de bloqueo. Los métodos sincrónicos tienen File Descriptor como último argumento. File Descriptor es una referencia a los archivos abiertos. Es un número o una identificación de referencia al archivo devuelto después de abrir el archivo usando el método fs.open() del módulo fs. Todos los métodos asíncronos pueden funcionar de forma síncrona simplemente agregando «Sync» al nombre de la función. Algunos de los métodos síncronos del módulo fs en NodeJS son:
- fs.readFileSync()
- fs.renameSync()
- fs.writeSync()
- fs.writeFileSync()
- fs.fsyncSync()
- fs.appendFileSync()
- fs.statSync()
- fs.readdirSync()
- fs.existsSync()
Ejemplo 1: método de lectura síncrona
Paso 1: Vamos a crear un archivo JavaScript llamado main.js y un archivo de texto con el nombre sample.txt con la siguiente declaración:
GeeksForGeeks is a Computer Science portal.
Paso 2: agregue el siguiente código dentro del archivo main.js y ejecútelo:
main.js
var fs = require("fs"); // Synchronous read console.log("Synchronous read method:"); var data = fs.readFileSync('sample.txt'); console.log("Data in the file is - " + data.toString());
Producción:
Ejemplo 2: método de adición síncrona
Paso 1: Vamos a crear un archivo JavaScript llamado main.js y un archivo de texto con el nombre sample.txt con la siguiente declaración:
Hello World !
Paso 2: agregue el siguiente código dentro del archivo main.js y ejecútelo:
main.js
var fs = require("fs"); // Synchronous read console.log("Synchronous append method:"); var data = "\nGeeksForGeeks is a Computer Science portal."; // Append data to file fs.appendFileSync('sample.txt', data, 'utf8'); console.log("Data is appended to file successfully.") data = fs.readFileSync('sample.txt'); console.log("Data in the file after appending is - \n" + data.toString());
Producción:
2. Métodos asíncronos:
Las funciones asíncronas no bloquean la ejecución del programa y cada comando se ejecuta después del comando anterior, incluso si el comando anterior no ha calculado el resultado. El comando anterior se ejecuta en segundo plano y carga el resultado una vez que ha terminado de procesarse. Por lo tanto, estas funciones se denominan funciones de no bloqueo. Toman una función de devolución de llamada como último parámetro. Las funciones asíncronas generalmente se prefieren a las funciones síncronas, ya que no bloquean la ejecución del programa, mientras que las funciones síncronas bloquean la ejecución del programa hasta que haya terminado de procesarse. Algunos de los métodos asíncronos del módulo fs en NodeJS son:
- fs.readFile()
- fs.renombrar()
- fs.escribir()
- fs.writeFile()
- fs.fsync()
- fs.appendFile()
- fs.stat()
- fs.readdir()
- fs.existe()
Las operaciones pesadas que consumen tiempo de procesamiento, como consultar grandes cantidades de datos de una base de datos, deben realizarse de forma asíncrona, ya que aún se pueden ejecutar otras operaciones y, por lo tanto, reducir el tiempo de ejecución del programa.
Ejemplo 1: método de lectura asincrónica
Paso 1: Vamos a crear un archivo JavaScript llamado main.js y un archivo de texto con el nombre sample.txt con la siguiente declaración:
GeeksForGeeks is a Computer Science portal.
Paso 2: agregue el siguiente código dentro del archivo main.js y ejecútelo:
main.js
var fs = require("fs"); // Asynchronous read console.log("Asynchronous read method:"); fs.readFile('sample.txt', function (err, data) { if (err) { return console.error(err); } console.log("Data in the file is - " + data.toString()); });
Producción:
Ejemplo 2: Método de adición asíncrono
Paso 1: Vamos a crear un archivo JavaScript llamado main.js y un archivo de texto con el nombre sample.txt con la siguiente declaración:
Hello World !
Paso 2: agregue el siguiente código dentro del archivo main.js y ejecútelo:
main.js
var fs = require("fs"); const data = "\nGeeksForGeeks is a Computer Science portal."; // Asynchronously appending data to file fs.appendFile('sample.txt', data, 'utf8', // Callback function function(err) { if (err) throw err; // If no error console.log("Data is appended to file successfully.") }); fs.readFile('sample.txt', function (err, data) { if (err) { return console.error(err); } console.log("Data in the file after appending: \n" + data.toString()); });
Producción:
Diferencia entre métodos asíncronos y síncronos:
No Señor |
métodos sincrónicos |
Métodos asíncronos |
1. | Las funciones síncronas se denominan funciones de bloqueo. | Las funciones asíncronas se denominan funciones sin bloqueo. |
2. | Bloquea la ejecución del programa hasta que la operación del archivo haya terminado de procesarse. | No bloquea la ejecución del programa. |
3. | Estas funciones toman File Descriptor como último argumento. | Estas funciones toman una función de devolución de llamada como último argumento. |
4. | Ejemplos: fs.readFileSync(), fs.appendFileSync(), fs.writeFileSync() etc. | Ejemplos: fs.readFile(), fs.appendFile(), fs.writeFile(), fs.stat() etc. |
Publicación traducida automáticamente
Artículo escrito por rajsanghavi9 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA