os模块,可以用来获取操作系统相关的信息和机器物理信息,例如操作系统平台,内核,cpu架构,内存,cpu,网卡等信息。

使用如下所示:

const os = require('os');

var dealTime = (seconds)=>{
var seconds = seconds|0;
var day = (seconds/(3600*24))|0;
var hours = ((seconds-day*3600)/3600)|0;
var minutes = ((seconds-day*3600*24-hours*3600)/60)|0;
var second = seconds%60;
(day<10)&&(day='0'+day);
(hours<10)&&(hours='0'+hours);
(minutes<10)&&(minutes='0'+minutes);
(second<10)&&(second='0'+second);
return [day,hours,minutes,second].join(':');
}; var dealMem = (mem)=>{
var G = 0,
M = 0,
KB = 0;
(mem>(1<<30))&&(G=(mem/(1<<30)).toFixed(2));
(mem>(1<<20))&&(mem<(1<<30))&&(M=(mem/(1<<20)).toFixed(2));
(mem>(1<<10))&&(mem>(1<<20))&&(KB=(mem/(1<<10)).toFixed(2));
return G>0?G+'G':M>0?M+'M':KB>0?KB+'KB':mem+'B';
}; //cpu架构
const arch = os.arch();
console.log("cpu架构:"+arch); //操作系统内核
const kernel = os.type();
console.log("操作系统内核:"+kernel); //操作系统平台
const pf = os.platform();
console.log("平台:"+pf); //系统开机时间
const uptime = os.uptime();
console.log("开机时间:"+dealTime(uptime)); //主机名
const hn = os.hostname();
console.log("主机名:"+hn); //主目录
const hdir = os.homedir();
console.log("主目录:"+hdir); //内存
const totalMem = os.totalmem();
const freeMem = os.freemem();
console.log("内存大小:"+dealMem(totalMem)+' 空闲内存:'+dealMem(freeMem)); //cpu
const cpus = os.cpus();
console.log('*****cpu信息*******');
cpus.forEach((cpu,idx,arr)=>{
var times = cpu.times;
console.log(`cpu${idx}:`);
console.log(`型号:${cpu.model}`);
console.log(`频率:${cpu.speed}MHz`);
console.log(`使用率:${((1-times.idle/(times.idle+times.user+times.nice+times.sys+times.irq))*100).toFixed(2)}%`);
}); //网卡
console.log('*****网卡信息*******');
const networksObj = os.networkInterfaces();
for(let nw in networksObj){
let objArr = networksObj[nw];
console.log(`\r\n${nw}:`);
objArr.forEach((obj,idx,arr)=>{
console.log(`地址:${obj.address}`);
console.log(`掩码:${obj.netmask}`);
console.log(`物理地址:${obj.mac}`);
console.log(`协议族:${obj.family}`);
});
}

执行结果如下:

E:\developmentdocument\nodejsdemo>node os-example.js

cpu架构:x64

操作系统内核:Windows_NT

平台:win32

开机时间:00:09:18:08

主机名:test-PC

主目录:C:\Users\test

内存大小:3.90G 空闲内存:1.42G

cpu信息**

cpu0:

型号:Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz

频率:3192MHz

使用率:7.32%

cpu1:

型号:Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz

频率:3192MHz

使用率:5.80%

cpu2:

型号:Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz

频率:3192MHz

使用率:6.31%

cpu3:

型号:Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz

频率:3192MHz

使用率:6.37%

网卡信息**

本地连接:

地址:fe80::c409:72be:75f8:2d01

掩码:ffff:ffff:ffff:ffff::

物理地址:40:8d:5c:b8:da:df

协议族:IPv6

地址:1.1.1.69

掩码:255.255.255.0

物理地址:40:8d:5c:b8:da:df

协议族:IPv4

Loopback Pseudo-Interface 1:

地址:::1

掩码:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

物理地址:00:00:00:00:00:00

协议族:IPv6

地址:127.0.0.1

掩码:255.0.0.0

物理地址:00:00:00:00:00:00

协议族:IPv4

6TO4 Adapter:

地址:2002:101:145::101:145

掩码:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

物理地址:00:00:00:00:00:00

协议族:IPv6

E:\developmentdocument\nodejsdemo>

Node.js:OS模块的更多相关文章

  1. Node.js OS 模块

    Node.js os 模块提供了一些基本的系统操作函数.我们可以通过以下方式引入该模块: var os = require("os") 方法 序号 方法 & 描述 1 os ...

  2. [Node.js]OS模块

    摘要 Node.js有很多工具模块,比如os,path,net,dns,domain模块.这里先介绍os模块的使用方法.os模块提供了一些基本的系统操作函数. os模块 引入os模块 var os=r ...

  3. 36.Node.js 工具模块--OS模块系统操作

    转自:http://www.runoob.com/nodejs/nodejs-module-system.html Node.js os 模块提供了一些基本的系统操作函数.我们可以通过以下方式引入该模 ...

  4. Node.js工具模块

    在Node.js的模块库中提供实用的模块数量. 这些模块都是很常见的,并同时开发基于任何节点的应用程序频繁使用. S.N. 模块的名称和说明 1 OS Module提供基本的操作系统相关的实用功能 2 ...

  5. Node.js的模块载入方式与机制

    Node.js中模块可以通过文件路径或名字获取模块的引用.模块的引用会映射到一个js文件路径,除非它是一个Node内置模块.Node的内置模块公开了一些常用的API给开发者,并且它们在Node进程开始 ...

  6. Node.js Web模块

    什么是Web服务器? Web服务器是处理由HTTP客户端发送的,如web浏览器的HTTP请求的软件应用程序,并返回响应于客户端网页. Web服务器通常伴随着图片,样式表和脚本的HTML文档. 大多数W ...

  7. node.js基础模块http、网页分析工具cherrio实现爬虫

    node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherri ...

  8. Node.js:模块

    概要:本篇博客主要介绍node.js的模块 1.创建模块 在node.js中创建一个模块非常简单,因为一个文件就是一个模块.我们只需要明白如何从其他文件中获取这个模块.Node.js提供了 expor ...

  9. node.js之模块

    node.js之模块 1.自定义模块的设置 加载自定义模块利用require: eg: require('./custom_module.js') 2.从模块外部访问模块内的成员 2.1使用expor ...

  10. Node.js的安装以及Node.js的模块管理

    索引: Node.js的安装以及Node.js的模块管理Node.js开发环境搭建以及对ES6的支持Node.js构建Vue.js项目Vue.js单文件组件的开发基于Vue.js的UI组件(Eleme ...

随机推荐

  1. 调用AJAX做登陆和注册

    先建立一个页面来检测一下我们建立的用户名能不能用,看一下有没有已经存在的用户名吗 可以通过ajax提示一下 $("#uid").blur(function(){ //取用户名 va ...

  2. PHP数据类型之间的强制转换

    1.实型数据强制转换为整型数据 $float1=2.7; $int1=(int)$float1; echo var_dump($int1),"<br>"; 输出: in ...

  3. ASP.NET MVC5+EF6+EasyUI 后台管理系统(72)-微信公众平台开发-消息处理

    系列目录 前言 Senparc.Weixin.MP SDK提供了MessageHandler消息处理类 在作者的Wiki中也详细说明了如何定义这个类,下面我们来演示,消息的回复,及效果 了解Messa ...

  4. C#多线程之线程池篇1

    在C#多线程之线程池篇中,我们将学习多线程访问共享资源的一些通用的技术,我们将学习到以下知识点: 在线程池中调用委托 在线程池中执行异步操作 线程池和并行度 实现取消选项 使用等待句柄和超时 使用计时 ...

  5. JS判断鼠标进入容器方向的方法和分析window.open新窗口被拦截的问题

    1.鼠标进入容器方向的判定 判断鼠标从哪个方向进入元素容器是一个经常碰到的问题,如何来判断呢?首先想到的是:获取鼠标的位置,然后经过一大堆的if..else逻辑来确定.这样的做法比较繁琐,下面介绍两种 ...

  6. 移动端访问PC站点时自动跳转至移动站点

    方法一: 百度Site APP的uaredirect.js 实现手机访问,自动跳转 <script src="http://siteapp.baidu.com/static/webap ...

  7. C#创建dll类库

    类库让我们的代码可复用,我们只需要在类库中声明变量一次,就能在接下来的过程中无数次地使用,而无需在每次使用前都要声明它.这样一来,就节省了我们的内存空间.而想要在类库添加什么类,还需取决于类库要实现哪 ...

  8. 简析服务端通过GT导入SHP至PG的方法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要在浏览器端直接上传SHP后服务端进行数据的自动入PG ...

  9. [原] KVM 虚拟化原理探究(6)— 块设备IO虚拟化

    KVM 虚拟化原理探究(6)- 块设备IO虚拟化 标签(空格分隔): KVM [toc] 块设备IO虚拟化简介 上一篇文章讲到了网络IO虚拟化,作为另外一个重要的虚拟化资源,块设备IO的虚拟化也是同样 ...

  10. CommandPattern

    /** * 命令模式 * @author TMAC-J * 将调用者和接受者分离 * 可以将一组命令组合在一起,适合很多命令的时候 */ public class CommandPattern { i ...