Método Node.js fsPromises.access()

El método fsPromises.access() se usa para probar los permisos de un archivo o directorio dado especificado por la ruta . 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.

Si la verificación de accesibilidad tiene éxito, la Promesa se resuelve sin ningún valor. Si alguna de las comprobaciones de accesibilidad falla, la promesa se rechaza con un objeto de error.

Sintaxis:

fsPromises.access( path, mode )

Parámetros: este método acepta dos 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 .

Valor de Retorno: Devuelve la Promesa.

Ejemplo 1: Este ejemplo muestra la prueba del permiso de escritura del archivo.

// Node.js program to demonstrate the 
// fsPromises.access() method 
     
// Import the filesystem module 
const fs = require('fs'); 
const fsPromises = fs.promises;
   
// Allowing only read permission
fs.chmodSync("example_file.txt", fs.constants.R_OK); 
     
// Testing the write permission 
fsPromises.access('example_file.txt', fs.constants.W_OK)
.then(() => console.log('Can be accessed'))
.catch(() => console.error('Can not be accessed'));  

Producción:

Can not be accessed

Ejemplo 2: Este ejemplo muestra la prueba del permiso de lectura y escritura de un archivo.

// Node.js program to demonstrate the 
// fsPromises.access() method 
     
// Import the filesystem module 
const fs = require('fs'); 
const fsPromises = fs.promises;
   
// Allowing only read permission
console.log("Giving only read permission to the user"); 
fs.chmodSync("example_file.txt", fs.constants.R_OK); 
     
// Test the read permission 
fsPromises.access('example_file.txt', fs.constants.R_OK)
.then(() => console.log('Can be accessed'))
.catch(() => console.error('Can not be accessed'));
   
// Test both the read and write permissions 
fsPromises.access('example_file.txt', 
    fs.constants.R_OK | fs.constants.W_OK)
.then(() => console.log('Can be accessed'))
.catch(() => console.error('Can not be accessed'));

Producción:

Giving only read permission to the user
Can be accessed
Can not be accessed

No se recomienda usar fsPromises.access() para comprobar la accesibilidad de un archivo antes de llamar a fsPromises.open() . Si lo hace, introduce una condición de carrera, ya que otros procesos pueden cambiar el estado del archivo entre las dos llamadas. En su lugar, el código de usuario debe abrir/leer/escribir el archivo directamente y manejar el error generado si no se puede acceder al archivo.

Publicación traducida automáticamente

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