Una forma más fácil de Leer y Escribir Archivos en ElectronJS

Una forma más fácil de leer y escribir archivos en ElectronJS

2 min para leer
electron
javascript
nodejs
webdev

TLDR 🥱!!!

En el hilo principal o proceso, utiliza ExpressJs junto con simples APIs de NodeJs (como fs y path) para leer y escribir archivos. ¡Fácil peasy! 😊

Pero para aprender cómo hacerlo, sigue leyendo. 👇🏻

Dependencias que necesitarás 📝

Configurando ExpressJs ☕

Conoces ese archivo index.js o ese archivo index.ts que tienes en tu proyecto de electron,
ese que contiene el código para crear la ventana principal y todo eso? Una forma de identificarlo es que seguramente tendrá una función llamada createWindow dentro de él.

Encuentra ese archivo y llama a tu servidor ExpressJs en él. Yo lo hago en la parte superior, justo después de las importaciones.

const expressApp = startServer(); expressApp.listen(8000, () => console.log('Express app escuchando en el puerto 8000'));

¡Eso es todo! Honestamente 😅, no puede ser más fácil, ¿verdad?

Ahora puedes usar los módulos fs y path para leer y escribir archivos.

  • 🥰 Un consejo para ti 👇🏻 Una forma efectiva 💪🏻 y increíble ⭐ de leer archivos es mediante el uso de un simple algoritmo de búsqueda de archivos del que escribí anteriormente. Échale un vistazo aquí

Y 😒

Solo por si acaso, así es como puedes leer archivos:

  • La función startServer.
export default function startServer() { const expressApp = express(); expressApp.use(cors()); expressApp.get(`/`, (_, res) => { res.statusCode = 200; res.contentType('text/plain'); res.send( `El servidor está activo y en funcionamiento. Solicita archivos desde /files/{nombreDeArchivo}` ); }); expressApp.use('/files', fileRouter); return expressApp; }
  • Y aquí está el fileRouter mencionado anteriormente
const router = express.Router(); router.get('/:filename', (req, res) => { const filename = req.params.filename; // 👇🏻 encuentra este algoritmo `fileSearch` en el menú desplegable de Publicaciones Relacionadas fileSearch( pathOfDirectoryToSearchIn, filename, (err: Error, resultArr: string[]) => { if (err) { res.statusCode = 500; res.contentType('text/plain'); res.send(err); } else { res.statusCode = 200; // 👇🏻 o 'application/json' o cualquier cosa basada en el tipo de dato res.contentType('text/plain'); resultArr.length > 0 ? res.sendFile(resultArr[0]) : res.send('No se encontró el archivo'); } }); });

¡Eso es todo!, gracias 🤗 por leer hasta aquí