Actualmente estoy atascado tratando de recuperar un archivo del sistema de archivos para enviarlo a través de la API al cliente. Para mi backend, estoy usando express js, estoy usando la biblioteca fs y actualmente estoy tratando de hacerlo con la función readFile , pero quiero hacerlo sin especificar el nombre del archivo o solo la extensión del archivo porque dependerá del archivo El archivo se cargará desde el cliente.
Lo que intenté hasta ahora (sin éxito) se muestra a continuación:
router.get("/info/pic", async (req, res) => { const file = await fs.readFile("./images/profile/me.*", (err, data) => { if (err) { console.log(err); // Error: ENOENT: no such file or directory, open './images/profile/me.*' return; } console.log(data); }); }); const file = await fs.readFile("./images/profile/*.*", (err, data) => { if (err) { console.log(err); // Error: ENOENT: no such file or directory, open './images/profile/*.*' return; } console.log(data); }); const file = await fs.readFile("./images/profile/*", (err, data) => { if (err) { console.log(err); // Error: ENOENT: no such file or directory, open './images/profile/*' return; } console.log(data); }); Si especifico el nombre del archivo, todo funciona bien, como: fs.readFile("./images/profile/me.jpg" . pero como dije, no estoy seguro de la extensión correcta de ese archivo.
Información importante: ¡En ese directorio solo habrá un archivo!
¡Por favor, ayúdame! ¡Gracias de antemano!
Si solo hay un archivo en el directorio, el siguiente ciclo tendrá solo una iteración:
for await (const file of fs.opendirSync("./images/profile")) { var image = fs.readFileSync("./images/profile/" + file.name); ... }const fs = require('fs'); fs.readdir('./images/profile', function (err, files) { //handling error if (err) { return console.log('err); } files.forEach(function (file) { // Do whatever you want to do with the file }); });