當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。