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