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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。