当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js fsPromises.access()用法及代码示例


fsPromises.access()方法用于测试路径指定的给定文件或目录的权限。可以使用文件访问常量将要检查的权限指定为参数。也可以通过使用按位或运算符来创建具有多个文件常量的掩码来检查多个文件权限。

如果可访问性检查成功,则Promise将被解决,没有任何价值。如果任何可访问性检查失败,则Promise会被Error对象拒绝。

用法:

fsPromises.access( path, mode )

参数:该方法接受上述和以下所述的两个参数:

  • path:它是一个字符串,缓冲区或URL,表示必须对其进行权限测试的文件或目录的路径。
  • mode:它是一个整数值,表示要测试的许可。逻辑或运算符可用于分隔多个权限。它可以具有值fs.constants.F_OK,fs.constants.R_OK,fs.constants.W_OK和fs.constants.X_OK。它是一个可选参数。默认值为fs.constants.F_OK。

返回值:它返回Promise。

范例1:本示例显示了文件写入权限的测试。



// 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'));  

输出:

Can not be accessed

范例2:本示例显示了文件读写权限的测试。

// 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'));

输出:

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

不建议在调用fsPromises.open()之前使用fsPromises.access()检查文件的可访问性。这样做会引入竞争条件,因为其他进程可能会在两次调用之间更改文件的状态。而是,用户代码应直接打开/读取/写入文件,并处理无法访问文件时引发的错误。




相关用法


注:本文由纯净天空筛选整理自nitin_sharma大神的英文原创作品 Node.js | fsPromises.access() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。