当前位置:   article > 正文

Node.js OS 模块

Node.js OS 模块

Node.js 的 os 模块提供了与操作系统交互的功能,包括获取系统信息、检测系统资源等。这是一个内置模块,不需要额外安装。下面我将详细介绍 os 模块的一些常用方法及其用法。

安装

无需安装,直接在 Node.js 项目中使用即可。

引入 os 模块

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

os 模块常用方法

1. os.arch()

获取操作系统的架构。

console.log(os.arch());  // 输出如 "x64", "arm64" 等
  • 1
2. os.platform()

获取操作系统的名称。

console.log(os.platform());  // 输出如 "linux", "darwin" (macOS), "win32" 等
  • 1
3. os.type()

获取操作系统类型。

console.log(os.type());  // 输出如 "Linux", "Darwin", "Windows_NT" 等
  • 1
4. os.release()

获取操作系统的发行版本号。

console.log(os.release());  // 输出如 "10.15.7" (macOS Catalina)
  • 1
5. os.homedir()

获取用户的家目录路径。

console.log(os.homedir());  // 输出如 "/Users/username" (macOS) 或 "C:\\Users\\username" (Windows)
  • 1
6. os.hostname()

获取主机名。

console.log(os.hostname());  // 输出如 "my-computer"
  • 1
7. os.tmpdir()

获取临时文件目录。

console.log(os.tmpdir());  // 输出如 "/private/tmp" (macOS) 或 "C:\\Windows\\Temp" (Windows)
  • 1
8. os.uptime()

获取系统运行时间(秒数)。

console.log(os.uptime());  // 输出如 12345.678
  • 1
9. os.loadavg()

获取最近一段时间的系统平均负载。

console.log(os.loadavg());  // 输出如 [1.5, 1.2, 1.0] 表示过去 1、5、15 分钟的平均负载
  • 1
10. os.totalmem()

获取系统总内存大小(字节)。

console.log(os.totalmem());  // 输出如 17179869184 (16 GB)
  • 1
11. os.freemem()

获取系统可用内存大小(字节)。

console.log(os.freemem());  // 输出如 8589934592 (8 GB)
  • 1
12. os.cpus()

获取系统 CPU 信息。

const cpus = os.cpus();
cpus.forEach(cpu => {
  console.log(cpu.model);  // 输出如 "Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz"
  console.log(cpu.speed);  // 输出如 2600 (MHz)
});
  • 1
  • 2
  • 3
  • 4
  • 5
13. os.networkInterfaces()

获取网络接口信息。

const interfaces = os.networkInterfaces();
Object.keys(interfaces).forEach(iface => {
  console.log(`Interface: ${iface}`);
  interfaces[iface].forEach(details => {
    console.log(`  Address: ${details.address}, Netmask: ${details.netmask}, Family: ${details.family}`);
  });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
14. os.EOL

获取当前操作系统的换行符。

console.log(os.EOL);  // 输出如 "\n" (Unix) 或 "\r\n" (Windows)
  • 1

示例:获取系统信息

下面是一个示例脚本,它使用 os 模块打印出一些基本的系统信息。

const os = require('os');

console.log(`Operating System: ${os.type()} ${os.release()} (${os.arch()})`);
console.log(`Hostname: ${os.hostname()}`);
console.log(`Uptime: ${os.uptime()} seconds`);
console.log(`Total Memory: ${os.totalmem()} bytes`);
console.log(`Free Memory: ${os.freemem()} bytes`);
console.log(`Load Averages: ${os.loadavg().join(', ')}`);

const cpus = os.cpus();
console.log(`Number of CPUs: ${cpus.length}`);
cpus.forEach(cpu => {
  console.log(`  Model: ${cpu.model}`);
  console.log(`  Speed: ${cpu.speed} MHz`);
});

const interfaces = os.networkInterfaces();
Object.keys(interfaces).forEach(iface => {
  console.log(`Interface: ${iface}`);
  interfaces[iface].forEach(details => {
    console.log(`  Address: ${details.address}, Netmask: ${details.netmask}, Family: ${details.family}`);
  });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

总结

os 模块提供了很多有用的方法来获取关于操作系统的各种信息。这些信息对于调试、监控和适应不同的运行环境都非常有用。如果你需要进一步的信息或者有其他问题,请随时告诉我!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/899776
推荐阅读
相关标签
  

闽ICP备14008679号