微信登录

核心模块 - os 模块 - 获取操作系统信息

Node.js 《核心模块 - os 模块 - 获取操作系统信息》

在 Node.js 开发中,我们有时需要获取操作系统的相关信息,比如系统的内存使用情况、CPU 架构、网络接口信息等。Node.js 提供了一个强大的核心模块 os 来满足这些需求。本文将详细介绍 os 模块的常用功能,并通过实际的演示代码来展示如何使用。

引入 os 模块

在使用 os 模块之前,我们需要先引入它。由于 os 是 Node.js 的核心模块,所以无需额外安装,直接引入即可。

  1. const os = require('os');

获取操作系统信息

1. 系统架构信息

我们可以使用 os.arch() 方法来获取操作系统的 CPU 架构信息。常见的架构有 x64arm 等。

  1. const arch = os.arch();
  2. console.log(`当前系统的 CPU 架构是: ${arch}`);

2. 操作系统平台信息

os.platform() 方法可以返回操作系统的平台信息,例如 win32 表示 Windows 系统,darwin 表示 macOS 系统,linux 表示 Linux 系统。

  1. const platform = os.platform();
  2. console.log(`当前操作系统的平台是: ${platform}`);

3. 操作系统类型信息

os.type() 方法返回操作系统的类型,例如 Windows_NT 表示 Windows 系统,Darwin 表示 macOS 系统,Linux 表示 Linux 系统。

  1. const type = os.type();
  2. console.log(`当前操作系统的类型是: ${type}`);

4. 系统开机时间

os.uptime() 方法返回系统的开机时间,单位是秒。

  1. const uptime = os.uptime();
  2. console.log(`系统已经开机 ${uptime} 秒`);

5. 内存信息

  • os.totalmem():返回系统的总内存量,单位是字节。
  • os.freemem():返回系统的空闲内存量,单位是字节。
  1. const totalMemory = os.totalmem();
  2. const freeMemory = os.freemem();
  3. console.log(`系统总内存: ${totalMemory} 字节`);
  4. console.log(`系统空闲内存: ${freeMemory} 字节`);

6. CPU 信息

os.cpus() 方法返回一个包含每个 CPU 核心信息的数组,每个核心信息包含型号、速度、时间等。

  1. const cpus = os.cpus();
  2. console.log('CPU 信息:');
  3. cpus.forEach((cpu, index) => {
  4. console.log(`CPU 核心 ${index + 1}:`);
  5. console.log(` 型号: ${cpu.model}`);
  6. console.log(` 速度: ${cpu.speed} MHz`);
  7. });

7. 网络接口信息

os.networkInterfaces() 方法返回一个包含所有网络接口信息的对象。

  1. const networkInterfaces = os.networkInterfaces();
  2. console.log('网络接口信息:');
  3. for (const interfaceName in networkInterfaces) {
  4. console.log(`接口名称: ${interfaceName}`);
  5. networkInterfaces[interfaceName].forEach((info) => {
  6. console.log(` 地址: ${info.address}`);
  7. console.log(` 子网掩码: ${info.netmask}`);
  8. console.log(` 家族: ${info.family}`);
  9. });
  10. }

总结

方法 描述
os.arch() 返回操作系统的 CPU 架构信息
os.platform() 返回操作系统的平台信息
os.type() 返回操作系统的类型信息
os.uptime() 返回系统的开机时间(秒)
os.totalmem() 返回系统的总内存量(字节)
os.freemem() 返回系统的空闲内存量(字节)
os.cpus() 返回包含每个 CPU 核心信息的数组
os.networkInterfaces() 返回包含所有网络接口信息的对象

通过使用 os 模块,我们可以方便地获取操作系统的各种信息,这对于开发系统监控工具、性能分析工具等都非常有用。希望本文能帮助你更好地理解和使用 os 模块。