Método Node.js fs.watch()

El método fs.watch() es una interfaz de programación de aplicaciones incorporada del módulo fs que se utiliza para observar continuamente los cambios en el archivo o directorio dado. Devuelve un objeto fs.FSWatcher que se puede utilizar para realizar un seguimiento de los cambios en el archivo.

Tiene un oyente opcional como tercer argumento que se puede usar para obtener los cambios que se producen. Este oyente tiene dos argumentos, uno es el nombre del archivo o directorio que se modifica y el otro es el tipo de modificación. Mientras mira un archivo, si desaparece y vuelve a aparecer, se emite el evento ‘cambiar nombre’, y si se modifica el contenido del archivo, se emite el evento ‘cambiar’.

Nota: este método no es confiable y puede mostrar múltiples eventos en el oyente para cada modificación.

Sintaxis:

fs.watch( filename[, options][, listener] )

Parámetros: este método acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:

  • nombre de archivo: es una string, búfer o URL que denota el nombre del archivo o directorio que se va a observar.
  • opciones: Es una string u objeto que se puede utilizar para modificar el comportamiento del método. Es un parámetro opcional. Tiene los siguientes parámetros: 
    • persistente: Es un valor booleano que se utiliza para especificar si el proceso debe continuar mientras se estén viendo los archivos. El valor por defecto es verdadero.
    • recursivo: Es un valor booleano que se utiliza para especificar si se deben vigilar todos los subdirectorios de un directorio determinado. El valor predeterminado es falso.
    • codificación: es una string que especifica la codificación de caracteres que se ha utilizado para el nombre de archivo pasado al oyente.
  • listener: Es una función que se invoca cuando se accede o modifica el archivo. Es un parámetro opcional.
    • eventType: Es una string que especifica el tipo de modificación que sufrió el archivo.
    • nombre de archivo: Es una string o Buffer que especifica el nombre de archivo en el que se desenstring el evento.

Valor de retorno: Devuelve un objeto fs.StatWatcher cuando la función se llama con éxito. 

Los siguientes ejemplos ilustran el método fs.watch() en Node.js:

Ejemplo 1: este ejemplo muestra el uso del método watch() en un archivo.

javascript

// Node.js program to demonstrate the
// fs.watch() method
  
// Import the filesystem module
const fs = require('fs');
  
fs.watch("example_file.txt", (eventType, filename) => {
  console.log("\nThe file", filename, "was modified!");
  console.log("The type of change was:", eventType);
});
  
// Renaming the file to a new name
setTimeout(
  () => fs.renameSync("example_file.txt", "new_file.txt"),
  1000
);
  
// Renaming the file back to its old name
setTimeout(
  () => fs.renameSync("new_file.txt", "example_file.txt"),
  2000
);
  
// Changing the contents of the file 
setTimeout(
  () => fs.writeFileSync("example_file.txt", 
  "The file is modified"), 3000
);

Salida: Tenga en cuenta que este método no es confiable y puede mostrar múltiples eventos para cada modificación.

The file example_file.txt was modified!
The type of change was: rename

The file example_file.txt was modified!
The type of change was: rename

The file example_file.txt was modified!
The type of change was: change

Ejemplo 2: Este ejemplo muestra el uso del método watch() en un directorio.

javascript

// Node.js program to demonstrate the
// fs.watch() method
  
// Import the filesystem module
const fs = require('fs');
  
fs.watch("ex_dir", (eventType, filename) => {
  console.log("\nThe file", filename, "was modified!");
  console.log("The type of change was:", eventType);
});
  
// Changing the contents of a file 
setTimeout(
  () => fs.writeFileSync("ex_dir/ex1.txt", 
  "The file is modified"), 1000
);
  
// Renaming a file to a new name
setTimeout(
  () => fs.renameSync("ex_dir/ex2.txt", 
  "ex_dir/new_ex2.txt"), 2000
);

Salida: Tenga en cuenta que este método no es confiable y puede mostrar múltiples eventos para cada modificación.

The file ex1.txt was modified!
The type of change was: change

The file ex2.txt was modified!
The type of change was: rename

The file new_ex2.txt was modified!
The type of change was: rename

Referencia: https://nodejs.org/api/fs.html#fs_fs_watch_filename_options_listener

Publicación traducida automáticamente

Artículo escrito por sayantanm19 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 *