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


Node.js fs.promises.appendFile()用法及代码示例


Node.js中“文件系统”模块的fs.promises.appendFile()方法用于与用户计算机的硬盘进行交互。 appendFile()方法用于将新数据附加到现有文件中,或者如果该文件不存在,则首先创建文件,然后将给定数据附加到该文件中。 fs.promises.appendFile()方法返回已解决或拒绝的承诺,因此避免了fs.appendFile()方法中可能发生的回调嵌套或回调地狱问题。

用法:

fs.promises.appendFile( path, data, options )

参数:此方法接受三个参数路径,数据和选项。选项是可选参数。

  • path:它是一个字符串,缓冲区或URL,它指定要在其中添加给定数据的目标文件的路径。
  • data:它是一个字符串或缓冲区,将附加到目标文件。
  • options:这是一个可选参数,它会以某种方式影响输出,因此我们是否将其提供给函数调用。
    • encoding:它指定了编码技术,默认值为“ UTF8”。
    • mode:它指定文件模式。文件模式使我们可以创建,读取,写入或修改文件。默认值为“ 0o666”。
    • flag:它指定附加到文件时使用的标志。默认值为‘a’。

返回值:它返回已解决或已拒绝的承诺。如果成功将数据附加到目标文件,则将解决诺言;否则,如果发生任何错误(example-specified文件没有写权限等),将被错误对象拒绝。

范例1:



// Importing File System module 
const fs = require('fs') 
  
// The readFile() method reads the file 
// and returns buffer form of the data  
fs.promises.readFile('./test.txt') 
    .then(buff => { 
  
        // File content before append  
        const oldContent = buff.toString() 
        console.log(`Before Append:${oldContent}\n`) 
  
        // Append operation 
        return fs.promises.appendFile('./test.txt',  
                    '\nHey, I am newly added..!!') 
    }) 
  
    .then(() => { 
  
        // Getting new file content 
        return fs.promises.readFile('./test.txt') 
    }) 
  
    .then(buff => { 
  
        // File content after append  
        const newContent = buff.toString() 
        console.log(`After Append:${newContent}\n`) 
    }) 
  
    .catch(err => { 
        console.log(err) 
    })

我们可以使用async-await关键字实现相同的函数。

// Importing File System module 
const fs = require('fs') 
const appendDataToFile = async (path, data) => { 
  
    // The readFile() method reads the file 
    // and returns buffer form of the data  
    const oldBuffer = await fs.promises.readFile(path) 
  
    // File content before append  
    const oldContent = oldBuffer.toString() 
  
    // Append operation 
    await fs.promises.appendFile(path, data) 
  
    const newBuffer = await fs.promises.readFile(path) 
  
    // File content after append  
    const newContent = newBuffer.toString() 
  
    console.log(`Before Append:${oldContent}\n`) 
    console.log(`After Append:${newContent}`) 
} 
  
appendDataToFile('./test.txt',  
        '\nHey, I am newly added..!!') 
    .catch(err => { 
        console.log(err) 
    })

输出:

范例2:文件名的给定路径不存在时。

// Importing File System module 
const fs = require('fs') 
  
// Append operation 
// If given file does not exist 
// it will be created first then 
// data is appended 
fs.promises.appendFile('./test.txt',  
    'Please add me to the test file..!!') 
    .then(() => { 
  
        // readFile() method reads the file 
        // and returns buffer form of the data  
        return fs.promises.readFile('./test.txt') 
    }) 
  
    .then(buff => { 
  
        // Appended data 
        const content = buff.toString() 
        console.log(`Content:${content}`) 
    }) 
  
    .catch(err => { 
        console.log(err) 
    })

使用async-await关键字实现相同的函数。

// Importing File System module 
const fs = require('fs') 
  
const appendDataToFile = async (path, data) => { 
  
    // Append operation 
    // If given file does not exist 
    // It will created first then 
    // data is appended 
    await fs.promises.appendFile(path, data) 
  
    // readFile() method reads the file 
    // and returns buffer form of the data  
    const buff = await fs.promises.readFile(path) 
  
    // File content after append  
    const content = buff.toString() 
    console.log(`Content:${content}`) 
} 
  
appendDataToFile('./test.txt',  
    'Please add me to the test file..!!') 
    .catch(err => { 
        console.log(err) 
    })

运行程序之前的目录结构:

运行程序后的目录结构:

输出:




相关用法


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