Manejo de archivos en Node.js

Las funcionalidades más importantes proporcionadas por los lenguajes de programación son Leer y Escribir archivos de las computadoras. Node.js proporciona la funcionalidad para leer y escribir archivos desde la computadora. Leer y escribir el archivo en Node.js se realiza mediante el uso de uno de los mejores módulos de Node.js llamado módulo fs, es uno de los módulos integrados de Node.js más conocidos que existen.

El archivo se puede leer y escribir en node.js de forma síncrona y asíncrona. Un método síncrono es un método de bloqueo de código, lo que significa que el método dado bloqueará la ejecución del código hasta que finalice su ejecución (es decir, se lea o escriba el archivo completo). Por otro lado, un método asíncrono tiene una función de devolución de llamada que se ejecuta al finalizar la ejecución del método dado y, por lo tanto, permite que el código se ejecute durante la finalización de su ejecución. O, de acuerdo con JavaScript moderno, los métodos asincrónicos devuelven una Promesa que implica la eventual finalización del método asincrónico en curso, la Promesa será resuelta o rechazada. Por lo tanto, no es bloqueante.

Método síncrono para leer el archivo: Para leer el archivo en modo síncrono usamos un método en el módulo fs que es readFileSync(). Se necesitan dos parámetros: el primero es el nombre del archivo con la ruta completa y el segundo parámetro es la codificación de caracteres, que generalmente es ‘utf-8’.
 

javascript

// Require the given module
var fs = require('fs');
 
// Use readFileSync() method
 
// Store the result (return value) of this
// method in a variable named readMe
 
// Keep the file in the same folder so
// donot need to specify the complete path
var readMe = fs.readFileSync('readMe.txt', 'utf-8');
 
// log the content of file stored in
// a variable to screen
console.log(readMe);

Producción: 
 

Método síncrono para escribir en un archivo: para escribir el archivo en modo síncrono, usamos un método en el módulo fs que es writeFileSync(). Se necesitan dos parámetros: el primero es el nombre del archivo con la ruta completa en la que se escribirá el contenido y el segundo parámetro son los datos que se escribirán en el archivo.
 

javascript

// Require the given module
var fs = require('fs');
 
// Use readFileSync() method
 
// Store the result (return value) of this
// method in a variable named readMe
var readMe = fs.readFileSync('readMe.txt', 'utf-8');
  
// Store the content and read from
// readMe.txt to a file WriteMe.txt
fs.writeFileSync('writeMe.txt', readMe);

Método asíncrono para leer y escribir desde/hacia un archivo: Para leer/escribir el archivo en modo asíncrono en el módulo fs, usamos los métodos readFile() y writeFile(). fs.readFile() toma tres parámetros: primero es el nombre del archivo con la ruta completa, el segundo parámetro toma la codificación de caracteres que generalmente es ‘utf-8’ y el tercer parámetro es la función de devolución de llamada (que se activa después de leer el archivo completo ) con dos parámetros, uno es el error en caso de que ocurra un error al leer el archivo y el segundo son los datos que recuperamos después de leer el archivo y fs.writeFile() también toma tres parámetros, el nombre del archivo con su ruta completa, el segundo parámetro son los datos que se escribirán en el archivo y la tercera es una función de devolución de llamada que se activa en caso de que ocurra un error al escribir el archivo.
Nota:Un método asincrónico primero completa la tarea (leyendo el archivo) y luego activa la función de devolución de llamada.
 

javascript

// Require the given module
var fs = require('fs');
  
// Use readFile() method
fs.readFile('readMe.txt', 'utf-8', function(err, data) {
  
    // Write the data read from readeMe.txt
    // to a file writeMe.txt
    if( !err )
        fs.writeFile('writeMe.txt', data, (err)=>{
            if( err ) {
                throw err;
            }
        });
    else
        throw err;
});

Producción: 
 

Si hablamos en términos de Promise, el método de manejo de archivos asíncrono en Node.js, tenemos que usar el método promisify que toma una función que sigue el enfoque de devolución de llamada como entrada y devuelve una versión de esta función que devuelve una promesa. El código se ve como se muestra a continuación (aquí se ha seguido el enfoque de espera asincrónica):

Javascript

const {writeFile,readFile} = require('fs')
const {promisify} = require('util')
 
const readFileasync = promisify(readFile);
const writeFileasync = promisify(writeFile);
 
const file_handler = async()=>{
    try {
        const content = await writeFileasync('./writeMe.txt',"hello world");
        try {
            const data = await readFileasync('./writeMe.txt','utf-8');
            console.log('New file has been created .');
            console.log(data);
        } catch (error) {
            throw error;
        }
    } catch (error) {
          throw error;
    }
}
 
file_handler();

 Echemos un vistazo a la terminal para averiguar si el código funcionó o no.

Por lo tanto, esta es otra forma de lograr el mismo resultado en lo que respecta al manejo asincrónico de archivos en Node.js.

Publicación traducida automáticamente

Artículo escrito por akashdeep18 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *