Nodejs 如何获取cpu温度?

Nodejs 如何获取cpu温度?

看了下nodejs中的os模块提供的信息并不多,请问大家下没有办法在nodejs下获取系统的详细信息,我想获取cpu的温度该怎么处理?有相关的库吗?

8 回复

当然可以!要使用 Node.js 获取 CPU 温度,你需要借助一些第三方库,因为 Node.js 的内置 os 模块并不直接提供这种功能。一个常用的库是 node-cpu-temperature,它可以帮助你轻松地获取 CPU 温度。

以下是一个简单的示例代码,展示了如何使用 node-cpu-temperature 库来获取 CPU 温度:

  1. 首先,你需要安装 node-cpu-temperature 库。打开终端并运行以下命令:

    npm install node-cpu-temperature
    
  2. 然后,你可以编写如下的 JavaScript 代码来获取 CPU 温度:

const cpuTemperature = require('node-cpu-temperature');

// 获取当前CPU温度
function getCPUTemperature() {
    cpuTemperature.read().then(temperature => {
        console.log(`当前 CPU 温度为: ${temperature}°C`);
    }).catch(err => {
        console.error('获取 CPU 温度时发生错误:', err);
    });
}

// 调用函数
getCPUTemperature();

代码解释

  • 引入库:首先,我们通过 require 引入了 node-cpu-temperature 库。
  • 定义函数:我们定义了一个名为 getCPUTemperature 的函数,该函数用于读取 CPU 温度。
  • 读取温度:我们调用了 cpuTemperature.read() 方法来获取 CPU 温度。这是一个异步操作,因此我们使用 .then 来处理成功的结果,并打印出 CPU 温度。如果发生错误,则通过 .catch 来捕获并打印错误信息。

注意事项

  • 这个库主要适用于 Linux 系统,因为它依赖于 /sys/class/thermal/thermal_zone*/temp 文件来读取 CPU 温度。
  • 如果你在 Windows 或 macOS 上运行此代码,可能需要寻找其他库或方法来获取 CPU 温度。

希望这个示例能帮助你解决问题!如果你有任何其他问题或需求,请随时告诉我。


yum install -y lm_sensors

ubuntu下是 sudo apt-get install lm-sensors

直接执行我也知道啊,我是想说的时候没有相关的api吗?

方法有很多,还有一种是利用 snmp协议,在服务器上安装好snmp。然后在npm上查找snmp模块,安装,然后查找一下相关api,就知道了。利用snmp协议,能知道很多信息,不过这个是杀鸡用牛刀。

我在VmWare的CentOS 6.3 final安装了lm_sensors还是不能检测到温度

vm guest不可能取到host温度的吧…

要在 Node.js 中获取 CPU 温度,你需要借助操作系统的特定工具或第三方库。Node.js 本身的标准库(如 os 模块)并没有提供这样的功能。你可以使用一些跨平台的库来获取这些信息。

一个常用的库是 node-cpu-temp,它可以获取 CPU 的温度。这个库支持多种操作系统,包括 Linux、macOS 和 Windows。下面是使用该库获取 CPU 温度的示例代码:

  1. 首先,安装 node-cpu-temp 库:

    npm install node-cpu-temp
    
  2. 然后,在你的 Node.js 脚本中使用它:

    const cpuTemp = require('node-cpu-temp');
    
    // 获取当前 CPU 温度
    cpuTemp().then(temp => {
        console.log(`CPU Temperature: ${temp}°C`);
    }).catch(err => {
        console.error('Error fetching CPU temperature:', err);
    });
    

示例代码解析

  • 安装 node-cpu-temp:通过 npm 安装 node-cpu-temp 库,这一步只需要执行一次。

  • 导入库:在脚本中使用 require('node-cpu-temp') 导入 node-cpu-temp 库。

  • 获取 CPU 温度:调用 cpuTemp() 函数,它会返回一个 Promise。当成功获取到温度时,Promise 会 resolve 并传递一个包含 CPU 温度的值。如果出现错误,Promise 会被 reject,并传递错误对象。

  • 输出结果:将获取到的温度值打印出来。

如果你需要获取更详细的系统信息(不仅仅是 CPU 温度),可以考虑使用其他库,例如 systeminformation。这个库提供了更多关于系统的信息,包括 CPU 温度、内存使用情况等。

npm install systeminformation

然后在你的 Node.js 脚本中使用它:

const si = require('systeminformation');

// 获取 CPU 温度
si.cpuTemperature().then(data => {
    console.log(`CPU Temperature: ${data.main}°C`);
}).catch(err => {
    console.error('Error fetching CPU temperature:', err);
});

这个方法也类似,systeminformation 库提供了更为丰富的系统信息接口,包括 CPU 温度在内的各种硬件信息。

回到顶部