El método fs.readdir() se define en el módulo Sistema de archivos de Node.js. El módulo del Sistema de Archivos es básicamente para interactuar con el disco duro de la computadora del usuario. El método readdir() se utiliza para leer el contenido de un directorio.
El método fs.readdir() se basa en la devolución de llamada. El uso de métodos de devolución de llamada genera una gran posibilidad de anidamiento de devolución de llamada o problemas infernales de devolución de llamada. Por lo tanto, para evitarlo, casi siempre nos gusta trabajar con un método basado en promesas. Usando algunos métodos adicionales de node.js, podemos operar un método basado en devolución de llamada de manera prometedora.
Sintaxis:
fs.readdir(path, options)
Nota: No se requiere devolución de llamada ya que operamos el método con promesas.
Parámetros: Este método acepta dos parámetros como se mencionó anteriormente y se describe a continuación:
- ruta: Es una string, búfer o url que especifica la ruta al directorio, cuyo contenido intentamos leer.
- opciones: es un parámetro opcional, aquí especificamos técnicas de codificación (predeterminado-utf8), etc.
Enfoque: el método fs.readdir() basado en la devolución de llamada. Para operarlo con promesas, primero, usamos el método promisify() definido en el módulo de utilidades para convertirlo en un método basado en promesas.
Ejemplo 1: Nombre de archivo: index.js
// Program to read file and folders of // the current working directory // Importing File System and Utilities module const fs = require('fs') const util = require('util') // Convert callback based methods to promise // based methods const readDir = util.promisify(fs.readdir) // Reading current working directory readDir(process.cwd()) // If promise resolved and datas are fetched .then(filenames => { for(let filename of filenames) { console.log(filename) } }) // If promise is rejected .catch(err => { console.log(`Error occurs, Error code -> ${err.code}, Error No -> ${err.errno} `); })
Implementando la misma funcionalidad usando async-await :
// Program to read file and folders of the // current working directory // Importing File System and Utilities module const fs = require('fs') const util = require('util') // Convert callback based methods to promise // based methods const readDir = util.promisify(fs.readdir) const readDirectory = async (path) => { const filenames = await readDir(path) for(let filename of filenames){ console.log(filename) } } readDirectory(process.cwd()) // If promise is rejected .catch(err => { console.log(`Error occurs, Error code -> ${err.code}, Error No -> ${err.errno}`); })
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
Ejemplo 2: Nombre de archivo: index.js
// Program to read file and folders of the // current working directory or as the path // given by command line argument // Importing File System and Utilities module const fs = require('fs') const util = require('util') // Convert callback based methods to promise // based methods const readDir = util.promisify(fs.readdir) // The process.cwd() gives current working directory const targetDir = process.argv[2] || process.cwd() readDir(targetDir) // If promise resolved and datas are fetched .then(filenames => { for(let filename of filenames) { console.log(filename) } }) // If promise is rejected .catch(err => { console.log(err) })
Implementando la misma funcionalidad usando async-await :
// Program to read file and folders of the // current working directory or as the path // given by command line argument // Importing File System and Utilities module const fs = require('fs') const util = require('util') // The process.cwd() gives current working directory const targetDir = process.argv[2] || process.cwd() // Convert callback based methods to promise // based methods const readDir = util.promisify(fs.readdir) const readDirectory = async (path) => { const filenames = await readDir(path) for(let filename of filenames){ console.log(filename) } } readDirectory(targetDir) // If promise is rejected .catch(err => { console.log(`Error occurs, Error code -> ${err.code}, Error No -> ${err.errno}`); })
Ejecute el archivo index.js con el siguiente comando:
node index.js
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