Electron - Librerie di nodi nativi

Abbiamo usato un modulo nodo, fs, nel capitolo precedente. Vedremo ora alcuni altri moduli del nodo che possiamo usare con Electron.

Modulo OS

Utilizzando il modulo OS, possiamo ottenere molte informazioni sul sistema su cui è in esecuzione la nostra applicazione. Di seguito sono riportati alcuni metodi che aiutano durante la creazione dell'app. Questi metodi ci aiutano a personalizzare le app in base al sistema operativo su cui sono in esecuzione.

Suor n Descrizione della funzione
1

os.userInfo([options])

Il os.userInfo()restituisce informazioni sull'utente attualmente attivo. Queste informazioni possono essere utilizzate per personalizzare l'applicazione per l'utente anche senza chiedere esplicitamente informazioni.

2

os.platform()

Il os.platform()restituisce una stringa che identifica la piattaforma del sistema operativo. Questo può essere utilizzato per personalizzare l'app in base al sistema operativo dell'utente.

3

os.homedir()

Il os.homedir()restituisce la directory home dell'utente corrente come una stringa. Generalmente, le configurazioni di tutti gli utenti risiedono nella directory home dell'utente. Quindi questo può essere utilizzato per lo stesso scopo per la nostra app.

4

os.arch()

Il os.arch()restituisce una stringa che identifica l'architettura della CPU del sistema operativo. Questo può essere utilizzato quando si esegue su architetture esotiche per adattare l'applicazione per quel sistema.

5

os.EOL

Una costante di stringa che definisce il marcatore di fine riga specifico del sistema operativo. Dovrebbe essere utilizzato ogni volta che si terminano le righe nei file sul sistema operativo host.

Utilizzando lo stesso file main.js e il seguente file HTML, possiamo stampare queste proprietà sullo schermo -

<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>

Ora esegui l'app utilizzando il seguente comando:

$ electron ./main.js

Il comando precedente genererà il seguente output:

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

Modulo Net

Il modulo net viene utilizzato per il lavoro relativo alla rete nell'app. Possiamo creare sia server che connessioni socket usando questo modulo. Generalmente, l'uso del modulo wrapper da npm è raccomandato rispetto all'uso del modulo net per attività relative alla rete.

Le tabelle seguenti elencano i metodi più utili del modulo:

Suor n Descrizione della funzione
1

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

Crea un nuovo server TCP. L'argomento connectionListener viene impostato automaticamente come listener per l'evento "connection".

2

net.createConnection(options[, connectionListener])

Un metodo di fabbrica, che restituisce un nuovo "net.Socket" e si connette all'indirizzo e alla porta forniti.

3

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

Inizia ad accettare le connessioni sulla porta e sull'host specificati. Se l'host viene omesso, il server accetterà le connessioni dirette a qualsiasi indirizzo IPv4.

4

net.Server.close([callback])

Infine viene chiuso quando tutte le connessioni sono terminate e il server emette un evento di "chiusura".

5

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

Apre la connessione per un dato socket. Se vengono forniti porta e host, il socket verrà aperto come socket TCP.

Il modulo net include anche alcuni altri metodi. Per ottenere un elenco più completo, vedere questo .

Ora, creiamo un'app elettronica che utilizzi il modulo net per creare connessioni al server. Dovremo creare un nuovo file,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');
});

Utilizzando lo stesso file main.js, sostituire il file HTML con il seguente:

<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>

Esegui il server utilizzando il seguente comando:

$ node server.js

Eseguire l'applicazione utilizzando il seguente comando:

$ electron ./main.js

Il comando precedente genererà il seguente output:

Osserva che ci colleghiamo automaticamente al server e anche noi ci disconnettiamo automaticamente.

Abbiamo anche alcuni altri moduli del nodo che possiamo utilizzare direttamente sul front-end utilizzando Electron. L'utilizzo di questi moduli dipende dallo scenario in cui vengono utilizzati.