Método Node.js fs.access()

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

Deja una respuesta

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