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


Node.js fs.fdatasync()用法及代碼示例


fs模塊提供了一種API,用於以圍繞標準POSIX函數進行緊密建模的方式與file-system進行交互。所有文件係統操作都具有同步和異步形式,並且大多數異步形式將完成回調作為其最後一個參數。

fs.fdatasync()(在v0.1.96中添加)方法是fs模塊的內置應用程序編程接口,類似於fs.fsync(),它減少了不需要將所有元數據與磁盤同步的應用程序的磁盤活動。需要元數據以允許後續數據檢索應正確處理,因為它不會刷新已修改的元數據。

用法:

fs.fdatasync(fd, callback);

可以使用以下命令訪問“ fs”模塊:

const fs = require('fs');

參數:此方法接受上麵提到和下麵描述的兩個參數:



  • fd <integer>:此參數接受<integer>類型值。
  • callback<function>:此參數需要一個回調函數,並提防嵌套回調或回調地獄。
    • err <錯誤>:如果未正確處理回調函數,則引發錯誤。

範例1: 文件名:index.js

Javascript

// Node.js program to demonstrate the  
// fs.fdatasync() method  
  
// Using require to access fs module  
const fs = require('fs'); 
  
// Basic demo of fs.fdatasync 
fs.fdatasync(1, err => { 
    if (err) { 
        console.log('error', err); 
    } 
    else { 
        console.log('no-error'); 
    } 
    console.log("Data Sync..."); 
}) 
  
// alfa function 
function alfa() { 
    console.log("Printing callback in "
        + "console from callback alfa... "); 
    return "hiii"; 
} 
function data() { 
    console.log("Printing callback in "
        + "console from data... "); 
} 
  
// Open the file 
fs.open('filename.txt', "a+", (err, fd) => { 
    if (err) 
        throw err; 
  
    // Write our data 
    fs.writeFile(fd, data, (err) => { 
  
        // checking error 
        if (err) 
            throw err; 
          
        // Force the file to be flushed 
        fs.fdatasync(fd, function alfa(err) { 
            if (err) 
                throw err 
        }); 
        fs.fdatasync(5, data); 
      
        // print after dataSync 
        console.log("Writing 'data' in 'filename.txt'... ") 
    }); 
});

使用以下命令運行index.js文件:

node index.js

輸出:

error [Error:EBADF:bad file descriptor, fdatasync] {
  errno:-4083,
  code:'EBADF',
  syscall:'fdatasync'
}
Data Sync...
Writing 'data' in 'filename.txt'...       
Printing callback in console from data... 

參考: https://nodejs.org/api/fs.html#fs_fs_fdatasync_fd_callback

相關用法


注:本文由純淨天空篩選整理自vikas_g大神的英文原創作品 Node.js fs.fdatasync() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。