Electron - Bibliotecas de Nó Nativas
Usamos um módulo de nó, fs, no capítulo anterior. Veremos agora alguns outros módulos de nó que podemos usar com o Electron.
Módulo OS
Usando o módulo OS, podemos obter muitas informações sobre o sistema em que nosso aplicativo está sendo executado. A seguir estão alguns métodos que ajudam enquanto o aplicativo está sendo criado. Esses métodos nos ajudam a personalizar os aplicativos de acordo com o sistema operacional em que estão sendo executados.
Sr. Não | Descrição da função |
---|---|
1 | os.userInfo([options]) o os.userInfo()método retorna informações sobre o usuário efetivo no momento. Essas informações podem ser usadas para personalizar o aplicativo para o usuário, mesmo sem solicitar explicitamente as informações. |
2 | os.platform() o os.platform()método retorna uma string que identifica a plataforma do sistema operacional. Isso pode ser usado para personalizar o aplicativo de acordo com o sistema operacional do usuário. |
3 | os.homedir() o os.homedir()método retorna o diretório inicial do usuário atual como uma string. Geralmente, as configurações de todos os usuários residem no diretório inicial do usuário. Portanto, isso pode ser usado para o mesmo propósito em nosso aplicativo. |
4 | os.arch() o os.arch()método retorna uma string que identifica a arquitetura da CPU do sistema operacional. Isso pode ser usado ao executar em arquiteturas exóticas para adaptar seu aplicativo a esse sistema. |
5 | os.EOL Uma constante de string que define o marcador de fim de linha específico do sistema operacional. Deve ser usado sempre que terminar linhas em arquivos no sistema operacional host. |
Usando o mesmo arquivo main.js e o seguinte arquivo HTML, podemos imprimir essas propriedades na tela -
<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>
Agora execute o aplicativo usando o seguinte comando -
$ electron ./main.js
O comando acima irá gerar a seguinte saída -
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 Rede
O módulo de rede é usado para trabalho relacionado à rede no aplicativo. Podemos criar servidores e conexões de soquete usando este módulo. Geralmente, o uso do módulo wrapper do npm é recomendado em vez do módulo net para tarefas relacionadas à rede.
As tabelas a seguir listam os métodos mais úteis do módulo -
Sr. Não | Descrição da função |
---|---|
1 | net.createServer([options][, connectionListener]) Cria um novo servidor TCP. O argumento connectionListener é definido automaticamente como um ouvinte para o evento 'conexão'. |
2 | net.createConnection(options[, connectionListener]) Um método de fábrica, que retorna um novo 'net.Socket' e se conecta ao endereço e porta fornecidos. |
3 | net.Server.listen(port[, host][, backlog][, callback]) Comece a aceitar conexões na porta e no host especificados. Se o host for omitido, o servidor aceitará conexões direcionadas a qualquer endereço IPv4. |
4 | net.Server.close([callback]) Finalmente fechado quando todas as conexões são encerradas e o servidor emite um evento 'close'. |
5 | net.Socket.connect(port[, host][, connectListener]) Abre a conexão para um determinado soquete. Se a porta e o host forem fornecidos, o soquete será aberto como um soquete TCP. |
O módulo de rede também vem com alguns outros métodos. Para obter uma lista mais abrangente, consulte isto .
Agora, vamos criar um aplicativo de elétrons que usa o módulo de rede para criar conexões com o servidor. Precisamos criar um novo arquivo,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 o mesmo arquivo main.js, substitua o arquivo HTML pelo seguinte -
<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>
Execute o servidor usando o seguinte comando -
$ node server.js
Execute o aplicativo usando o seguinte comando -
$ electron ./main.js
O comando acima irá gerar a seguinte saída -
Observe que nos conectamos ao servidor automaticamente e também somos desconectados automaticamente.
Também temos alguns outros módulos de nó que podemos usar diretamente no front-end usando o Electron. O uso desses módulos depende do cenário em que você os usa.