Electron - Bibliotecas de nodos nativos

Usamos un módulo de nodo, fs, en el capítulo anterior. Ahora veremos algunos otros módulos de nodo que podemos usar con Electron.

Módulo OS

Al usar el módulo del sistema operativo, podemos obtener mucha información sobre el sistema en el que se ejecuta nuestra aplicación. A continuación, se muestran algunos métodos que ayudan mientras se crea la aplicación. Estos métodos nos ayudan a personalizar las aplicaciones de acuerdo con el sistema operativo en el que se ejecutan.

No Señor Función descriptiva
1

os.userInfo([options])

los os.userInfo()El método devuelve información sobre el usuario efectivo actualmente. Esta información se puede utilizar para personalizar la aplicación para el usuario incluso sin pedir información explícitamente.

2

os.platform()

los os.platform()El método devuelve una cadena que identifica la plataforma del sistema operativo. Esto se puede utilizar para personalizar la aplicación según el sistema operativo del usuario.

3

os.homedir()

los os.homedir()El método devuelve el directorio de inicio del usuario actual como una cadena. Generalmente, las configuraciones de todos los usuarios residen en el directorio de inicio del usuario. Así que esto se puede utilizar con el mismo propósito para nuestra aplicación.

4

os.arch()

los os.arch()El método devuelve una cadena que identifica la arquitectura de la CPU del sistema operativo. Esto se puede utilizar cuando se ejecuta en arquitecturas exóticas para adaptar su aplicación a ese sistema.

5

os.EOL

Una constante de cadena que define el marcador de fin de línea específico del sistema operativo. Esto debe usarse siempre que terminen líneas en archivos en el sistema operativo host.

Usando el mismo archivo main.js y el siguiente archivo HTML, podemos imprimir estas propiedades en la pantalla:

<html>
   <head>
      <title>OS Module</title>
   </head>
   
   <body>
      <script>
         let os = require('os')
         document.write('User Info: ' + JSON.stringify(os.userInfo()) + '<br>' + 
            'Platform: ' + os.platform() + '<br>' + 
            'User home directory: ' +  os.homedir() + '<br>' + 
            'OS Architecture: ' + os.arch() + '<br>')
      </script>
   </body>
</html>

Ahora ejecute la aplicación usando el siguiente comando:

$ electron ./main.js

El comando anterior generará la siguiente salida:

User Info: {"uid":1000,"gid":1000,"username":"ayushgp","homedir":"/home/ayushgp",
   "shell":"/usr/bin/zsh"}
Platform: linux
User home directory: /home/ayushgp
OS Architecture: x64

Módulo de red

El módulo de red se utiliza para trabajos relacionados con la red en la aplicación. Podemos crear tanto servidores como conexiones de socket usando este módulo. En general, se recomienda el uso del módulo contenedor de npm sobre el uso del módulo net para tareas relacionadas con la red.

Las siguientes tablas enumeran los métodos más útiles del módulo:

No Señor Función descriptiva
1

net.createServer([options][, connectionListener])

Crea un nuevo servidor TCP. El argumento connectionListener se establece automáticamente como un oyente para el evento 'connection'.

2

net.createConnection(options[, connectionListener])

Un método de fábrica, que devuelve un nuevo 'net.Socket' y se conecta a la dirección y al puerto proporcionados.

3

net.Server.listen(port[, host][, backlog][, callback])

Comience a aceptar conexiones en el puerto y host especificados. Si se omite el host, el servidor aceptará conexiones dirigidas a cualquier dirección IPv4.

4

net.Server.close([callback])

Finalmente se cierra cuando se terminan todas las conexiones y el servidor emite un evento de "cierre".

5

net.Socket.connect(port[, host][, connectListener])

Abre la conexión para un enchufe determinado. Si se proporcionan el puerto y el host, el conector se abrirá como un conector TCP.

El módulo de red también viene con algunos otros métodos. Para obtener una lista más completa, vea esto .

Ahora, creemos una aplicación electrónica que use el módulo net para crear conexiones con el servidor. Necesitaremos crear un nuevo archivo,server.js -

var net = require('net');
var server = net.createServer(function(connection) { 
   console.log('Client Connected');
   
   connection.on('end', function() {
      console.log('client disconnected');
   });
   
   connection.write('Hello World!\r\n');
   connection.pipe(connection);
});

server.listen(8080, function() { 
   console.log('Server running on http://localhost:8080');
});

Usando el mismo archivo main.js, reemplace el archivo HTML con lo siguiente:

<html>
   <head>
      <title>net Module</title>
   </head>
   
   <body>
      <script>
         var net = require('net');
         var client = net.connect({port: 8080}, function() {
            console.log('Connection established!');  
         });
         
         client.on('data', function(data) {
            document.write(data.toString());
            client.end();
         });
         
         client.on('end', function() { 
            console.log('Disconnected :(');
         });
      </script>
   </body>
</html>

Ejecute el servidor con el siguiente comando:

$ node server.js

Ejecute la aplicación usando el siguiente comando:

$ electron ./main.js

El comando anterior generará la siguiente salida:

Observe que nos conectamos al servidor automáticamente y también nos desconectamos automáticamente.

También tenemos algunos otros módulos de nodo que podemos usar directamente en el front-end usando Electron. El uso de estos módulos depende del escenario en el que los use.