Electron - Manejo de archivos
El manejo de archivos es una parte muy importante de la construcción de una aplicación de escritorio. Casi todas las aplicaciones de escritorio interactúan con archivos.
Crearemos un formulario en nuestra aplicación que tomará como entrada, un Nombre y una Dirección de correo electrónico. Este formulario se guardará en un archivo y se creará una lista que mostrará esto como salida.
Configure su proceso principal usando el siguiente código en el main.js archivo -
const {app, BrowserWindow} = require('electron')
const url = require('url')
const path = require('path')
let win
function createWindow() {
win = new BrowserWindow({width: 800, height: 600})
win.loadURL(url.format ({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file:',
slashes: true
}))
}
app.on('ready', createWindow)
Ahora abre el index.html archivo e ingrese el siguiente código en él -
<!DOCTYPE html>
<html>
<head>
<meta charset = "UTF-8">
<title>File System</title>
<link rel = "stylesheet"
href = "./bower_components/bootstrap/dist/css/bootstrap.min.css" />
<style type = "text/css">
#contact-list {
height: 150px;
overflow-y: auto;
}
</style>
</head>
<body>
<div class = "container">
<h1>Enter Names and Email addresses of your contacts</h1>
<div class = "form-group">
<label for = "Name">Name</label>
<input type = "text" name = "Name" value = "" id = "Name"
placeholder = "Name" class = "form-control" required>
</div>
<div class = "form-group">
<label for = "Email">Email</label>
<input type = "email" name = "Email" value = "" id = "Email"
placeholder = "Email" class = "form-control" required>
</div>
<div class = "form-group">
<button class = "btn btn-primary" id = "add-to-list">Add to list!</button>
</div>
<div id = "contact-list">
<table class = "table-striped" id = "contact-table">
<tr>
<th class = "col-xs-2">S. No.</th>
<th class = "col-xs-4">Name</th>
<th class = "col-xs-6">Email</th>
</tr>
</table>
</div>
<script src = "./view.js" ></script>
</div>
</body>
</html>
Ahora debemos manejar el evento de suma. Haremos esto en nuestroview.js archivo.
Crearemos una función loadAndDisplayContacts () que inicialmente cargará contactos desde el archivo. Después de crear la función loadAndDisplayContacts () , crearemos un controlador de clic en nuestroadd to listbotón. Esto agregará la entrada tanto al archivo como a la tabla.
En su archivo view.js, ingrese el siguiente código:
let $ = require('jquery')
let fs = require('fs')
let filename = 'contacts'
let sno = 0
$('#add-to-list').on('click', () => {
let name = $('#Name').val()
let email = $('#Email').val()
fs.appendFile('contacts', name + ',' + email + '\n')
addEntry(name, email)
})
function addEntry(name, email) {
if(name && email) {
sno++
let updateString = '<tr><td>'+ sno + '</td><td>'+ name +'</td><td>'
+ email +'</td></tr>'
$('#contact-table').append(updateString)
}
}
function loadAndDisplayContacts() {
//Check if file exists
if(fs.existsSync(filename)) {
let data = fs.readFileSync(filename, 'utf8').split('\n')
data.forEach((contact, index) => {
let [ name, email ] = contact.split(',')
addEntry(name, email)
})
} else {
console.log("File Doesn\'t Exist. Creating new file.")
fs.writeFile(filename, '', (err) => {
if(err)
console.log(err)
})
}
}
loadAndDisplayContacts()
Ahora ejecute la aplicación, usando el siguiente comando:
$ electron ./main.js
Una vez que le agregue algunos contactos, la aplicación se verá así:
Para más fs module API calls, consulte el tutorial del sistema de archivos de nodo .
Ahora podemos manejar archivos usando Electron. Veremos cómo llamar a los cuadros de diálogo guardar y abrir (nativos) para archivos en el capítulo de diálogos.