Node.js的os模組提供了與底層系統進行交互的有用函數。
此模組提供了許多函數,可以用來從底層操作系統和運行程式的計算機中檢索信息並與之交互。
const os = require('os')
有一些有用的屬性可以告訴我們一些與文件處理相關的重要信息:
- os.EOL返回行分隔符序列。在Linux和macOS上是- \n,在Windows上是- \r\n。
當我說Linux和macOS時,指的是POSIX平台。為了簡單起見,我排除了其他不太流行的Node可運行的操作系統。
- 
os.constants.signals提供了與處理進程信號相關的所有常量,例如SIGHUP、SIGKILL等。
- 
os.constants.errno設置了錯誤報告的常量,例如EADDRINUSE、EOVERFLOW等。
您可以在https://nodejs.org/api/os.html#os_signal_constants上找到它們的所有信息。
現在讓我們來看一下os提供的主要方法:
- os.arch()
- os.cpus()
- os.endianness()
- os.freemem()
- os.homedir()
- os.hostname()
- os.loadavg()
- os.networkInterfaces()
- os.platform()
- os.release()
- os.tmpdir()
- os.totalmem()
- os.type()
- os.uptime()
- os.userInfo()
os.arch()
返回標識底層架構的字符串,例如arm、x64、arm64。
os.cpus()
返回系統上可用CPU的信息。
示例:
[
  { 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()
返回BE或LE,取決於Node是以大端還是小端編譯的。
os.freemem()
返回系統中表示可用內存的字節數。
os.homedir()
返回當前用戶的主目錄路徑。
示例:
'/Users/flavio'
os.hostname()
返回主機名。
os.loadavg()
返回操作系統對平均負載的計算結果。
它只在Linux和macOS上返回有意義的值。
示例:
[3.68798828125, 4.00244140625, 11.1181640625]
os.networkInterfaces()
返回系統上可用網絡接口的詳細信息。
示例:
{
  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()
返回Node編譯所用的平台:
- darwin
- freebsd
- linux
- openbsd
- win32
- …更多
os.release()
返回標識操作系統發行版本號的字符串。
os.tmpdir()
返回分配的臨時文件夾的路徑。
os.totalmem()
返回表示系統中可用的總內存的字節數。
os.type()
識別操作系統:
- Linux
- macOS上的Darwin
- Windows上的Windows_NT
os.uptime()
返回自上次重啟計算機以來運行的秒數。
os.userInfo()
返回有關當前用戶的信息