nodejs页面显示cpu内存和磁盘占用率的前后端怎么写
时间: 2024-03-19 11:46:07 浏览: 27
要在 Node.js 中实现一个页面显示 CPU、内存和磁盘占用率的应用,我们可以采用前后端分离的方式,前端页面通过 AJAX 请求后端 API 获取数据,并将数据展示在页面上。
以下是一个简单的示例代码,实现了一个后端 API 和一个前端页面,可以显示 CPU、内存和磁盘占用率的信息。
后端 API:
```
const os = require('os')
const express = require('express')
const app = express()
// 获取 CPU 使用率
app.get('/api/cpu', (req, res) => {
const usage = process.cpuUsage()
const totalUsage = usage.user + usage.system
const percentage = (totalUsage / 1000 / 1000) * 100
res.json({ usage: percentage.toFixed(2) })
})
// 获取内存使用情况
app.get('/api/memory', (req, res) => {
const total = os.totalmem()
const free = os.freemem()
const used = total - free
const percentage = (used / total) * 100
res.json({ usage: percentage.toFixed(2) })
})
// 获取磁盘使用情况
app.get('/api/disk', (req, res) => {
const disk = os.platform() === 'win32' ? 'C:' : '/'
const diskInfo = os.fsSpaceSync(disk)
const total = diskInfo.size
const free = diskInfo.free
const used = total - free
const percentage = (used / total) * 100
res.json({ usage: percentage.toFixed(2) })
})
app.listen(3000, () => {
console.log('Server is running on port 3000')
})
```
前端页面:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>System Monitor</title>
</head>
<body>
<h1>System Monitor</h1>
<p>CPU Usage: <span id="cpu-usage"></span>%</p>
<p>Memory Usage: <span id="memory-usage"></span>%</p>
<p>Disk Usage: <span id="disk-usage"></span>%</p>
<script>
function updateData() {
// 更新 CPU 使用率
fetch('/api/cpu')
.then(res => res.json())
.then(data => {
document.getElementById('cpu-usage').textContent = data.usage
})
// 更新内存使用情况
fetch('/api/memory')
.then(res => res.json())
.then(data => {
document.getElementById('memory-usage').textContent = data.usage
})
// 更新磁盘使用情况
fetch('/api/disk')
.then(res => res.json())
.then(data => {
document.getElementById('disk-usage').textContent = data.usage
})
}
setInterval(updateData, 1000)
</script>
</body>
</html>
```
在上面的示例中,后端 API 通过 Express 框架实现,分别提供了 `/api/cpu`、`/api/memory` 和 `/api/disk` 三个接口,用于获取 CPU、内存和磁盘占用率的信息。前端页面通过 AJAX 请求这些接口,获取到数据后将其展示在页面上。页面的 `updateData()` 函数会每秒钟更新一次数据,并展示在页面上。