El método fs.promises.appendFile() del módulo Sistema de archivos en Node.js se usa para interactuar con el disco duro de la computadora del usuario. El método appendFile() se usa para agregar nuevos datos en el archivo existente o, si el archivo no existe, primero se crea el archivo y luego se le agregan los datos dados. El método fs.promises.appendFile() devuelve una promesa resuelta o rechazada y, por lo tanto, evita el anidamiento de devolución de llamada o los problemas infernales de devolución de llamada que pueden ocurrir en el método fs.appendFile() .
Sintaxis:
fs.promises.appendFile( path, data, options )
Parámetro: este método acepta tres rutas de parámetros, datos y opciones. Opciones es un parámetro opcional.
- ruta: es una string, búfer o URL que especifica la ruta al archivo de destino en el que se agregarán los datos dados.
- datos: es una string o un búfer que se agregará al archivo de destino.
- opciones: es un parámetro opcional que afecta la salida de alguna manera según lo proporcionemos a la llamada de función o no.
- codificación: Especifica la técnica de codificación, el valor por defecto es ‘UTF8’.
- mode: Especifica el modo del archivo. Los modos de archivo nos permiten crear, leer, escribir o modificar un archivo. El valor predeterminado es ‘0o666’.
- bandera: especifica la bandera utilizada al agregar al archivo. El valor predeterminado es ‘a’.
Valor devuelto: Devuelve una promesa resuelta o rechazada. La promesa se resuelve si los datos se agregan con éxito al archivo de destino; de lo contrario, se rechazan con un objeto de error si se produce algún error (el archivo especificado en el ejemplo no tiene permiso de escritura, etc.)
Ejemplo 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) })
podemos implementar la misma funcionalidad usando palabras clave 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) })
Producción:
Ejemplo 2: cuando no existe una ruta dada al nombre del archivo.
// 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) })
Implementando la misma funcionalidad con palabras clave 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) })
Estructura del directorio antes de ejecutar el programa:
Estructura del directorio después de ejecutar el programa:
Producción:
Publicación traducida automáticamente
Artículo escrito por hunter__js y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA