El método fs.access() se usa para probar los permisos de un archivo o directorio determinado. Los permisos que se comprobarán se pueden especificar como un parámetro utilizando constantes de acceso a archivos. También es posible comprobar varios permisos de archivo utilizando el operador OR bit a bit para crear una máscara con más de una constante de archivo.
Nota: No se recomienda usar el método fs.access() para verificar la accesibilidad de un archivo antes de llamar a fs.open(), fs.readFile() o fs.writeFile(), porque introduce una condición de carrera ya que el estado del archivo puede ser cambiado por otros procesos después de la prueba.
Sintaxis:
fs.access( path, mode, callback )
Parámetros: este método acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:
- ruta: es una string, un búfer o una URL que indica la ruta del archivo o directorio para el que se debe probar el permiso.
- modo: es un valor entero que denota el permiso para ser probado. El operador lógico OR se puede utilizar para separar varios permisos. Puede tener los valores fs.constants.F_OK, fs.constants.R_OK, fs.constants.W_OK y fs.constants.X_OK. Es un parámetro opcional. El valor predeterminado es fs.constants.F_OK.
- devolución de llamada: Es una función que sería llamada cuando se ejecuta el método.
- err: es un error que se lanzaría si el método falla.
Los siguientes ejemplos ilustran el método fs.access() en Node.js:
Ejemplo 1: Este ejemplo muestra la prueba del permiso de lectura y escritura de un archivo.
javascript
// Node.js program to demonstrate the // fs.access() method // Import the filesystem module const fs = require('fs'); // Allowing only read permission console.log("Giving only read permission to the user"); fs.chmodSync("example_file.txt", fs.constants.S_IRUSR); // Test the read permission fs.access('example_file.txt', fs.constants.R_OK, (err) => { console.log('\n> Checking Permission for reading the file'); if (err) console.error('No Read access'); else console.log('File can be read'); }); // Test both the read and write permissions fs.access('example_file.txt', fs.constants.R_OK | fs.constants.W_OK, (err) => { console.log('\n> Checking Permission for reading" + " and writing to file'); if (err) console.error('No Read and Write access'); else console.log('File can be read and written'); });
Producción:
Giving only read permission to the user > Checking Permission for reading the file File can be read > Checking Permission for reading and writing to file No Read and Write access
Ejemplo 2: Este ejemplo muestra la prueba de un archivo si existe.
javascript
// Node.js program to demonstrate the // fs.access() method // Import the filesystem module const fs = require('fs'); // Test the if the file exists fs.access('example_file.txt', fs.constants.F_OK, (err) => { console.log('\n> Checking if the file exists'); if (err) { console.error('File does not exist'); // Create the file console.log('\nCreating the file'); fs.writeFileSync("example_file2.txt", "Test File"); // Test the if the file exists again fs.access('example_file2.txt', fs.constants.F_OK, (err) => { console.log('\n> Checking if the file exists'); if (err) console.error('File does not exist'); else { console.log('File does exist'); } }); } else { console.log('File does exist'); } });
Producción:
> Checking if the file exists File does not exist Creating the file > Checking if the file exists File does exist
Referencia: https://nodejs.org/api/fs.html#fs_fs_access_path_mode_callback
Publicación traducida automáticamente
Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA