O módulo de sistema operacional Node.js.

Esse módulo disponibiliza diversas funções que você pode usar para obter informações do sistema operacional e do computador em que o programa está executando, e interagir com ele.

const os = require('os')

Há algumas propriedades úteis que nos dizem algumas coisas importantes relacionadas a manipulação de arquivos:

os.EOL retorna o a sequência delimitadora de linha (caracter de pular linha). \n no Linux e macOS, e \r\n no Windows.

os.constants.signals retorna todas contantes relacionadas a sinais de processos, como SIGHUP, SIGKILL e outros.

os.constants.errno define as constantes para reportar erros, como EADDRINUSE, EOVERFLOW e mais outras.

Você pode ver todas constantes em https://nodejs.org/api/os.html#os_signal_constants.

Agora vamos ver os principais métodos do os:

os.arch()

Retorna uma string que identifica a arquitetura, como arm, x64, arm64.

os.cpus()

Retorna informações sobre as CPUs disponívels no seu sistema.

Exemplo:

[
{
model: 'Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz',
speed: 2400,
times: {
user: 281685380,
nice: 0,
sys: 187986530,
idle: 685833750,
irq: 0
}
},
{
model: 'Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz',
speed: 2400,
times: {
user: 282348700,
nice: 0,
sys: 161800480,
idle: 703509470,
irq: 0
}
}
]

os.endianness()

Retorna BE ou LE dependendo se o Node.js foi compilado com Big Endian ou Little Endian.

os.freemem()

Retorna o número de bytes que representam a memória livre no seu sistema.

os.homedir()

Retorna o caminho do diretório home do usuário corrente.

Exemplo:

'/Users/pauloluan'

os.hostname()

Retorna o host name.

os.loadavg()

Retorna o cálculo feito pelo sistema operacional na média de carregamento.

Só retorna um valor significativo no Linux e no macOS.

Exemplo:

[3.68798828125, 4.00244140625, 11.1181640625]

os.networkInterfaces()

Retorna os detalhes das interfaces de rede disponíveis no seu sistema.

Exemplo:

{ lo0:
[ { address: '127.0.0.1',
netmask: '255.0.0.0',
family: 'IPv4',
mac: 'fe:82:00:00:00:00',
internal: true },
{ address: '::1',
netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
family: 'IPv6',
mac: 'fe:82:00:00:00:00',
scopeid: 0,
internal: true },
{ address: 'fe80::1',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: 'fe:82:00:00:00:00',
scopeid: 1,
internal: true } ],
en1:
[ { address: 'fe82::9b:8282:d7e6:496e',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '06:00:00:02:0e:00',
scopeid: 5,
internal: false },
{ address: '192.168.1.38',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '06:00:00:02:0e:00',
internal: false } ],
utun0:
[ { address: 'fe80::2513:72bc:f405:61d0',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: 'fe:80:00:20:00:00',
scopeid: 8,
internal: false } ] }

os.platform()

Retorna a plataforma em que o Node.js foi compilado:

  • darwin
  • freebsd
  • linux
  • openbsd
  • win32
  • ...outros

os.release()

Retorna uma string que identifica o número da versão do sistema operacional

os.tmpdir()

Retorna o caminho da pasta temp atribuida.

os.totalmem()

Retorna o número de butes que representam o total de memória disponível no sistema.

os.type()

Identifica o sistema operacional:

  • Linux
  • Darwin no macOS
  • Windows_NT no Windows

os.uptime()

Retorna o número de segundos em que o computador está rodando desde o último reinício.

os.userInfo()

Retorna um objeto contendo o username corrente, uid, gid, shell, e homedir