一、OS模块介绍

Node中的OS模块提供了和当前系统相关的一系列实用方法。在代码中可以直接用os = require("os")的方式来引入。OS模块本身非常的简单,本文将简单对其常用的方法和重要属性进行介绍并提供示例。

wendingding$ node
> console.dir(os,{showHiddren:true,depth:0,colors:true}) { arch: [Object],
cpus: [Function: cpus],
EOL: '\n',
endianness: [Object],
freemem: [Object],
homedir: [Object],
hostname: [Object],
loadavg: [Function: loadavg],
networkInterfaces: [Function: networkInterfaces],
platform: [Object],
release: [Object],
tmpdir: [Object],
totalmem: [Object],
type: [Object],
userInfo: [Function: getUserInfo],
uptime: [Object],
getNetworkInterfaces: [Function: deprecated],
tmpDir: [Function: deprecated],
constants: [Object]
}

二、基本使用

OS模块中的这些方法都不接受参数,全是获取(信息)型的方法,使用简单直接调用即可。

//001 导入模块
var os = require("os");
//002 迭代os对象
for(var f in os)
{
//003 获取os对象所有的方法并控制输出
if(typeof os[f] === "function")
{
console.log("当前方法名称:",f);
console.log("调用执行结果:",os[f]());
}else
{
//004 获取os对象中所有的属性并输出名称
console.log("当前属性名称:",f);
}
console.log("_____________");
}

使用自己的电脑进行测试,执行上面的代码,打印OS模块中所有的方法名并调用这些方法输出结果,下面列出命令行执行JavaScript文件的结果。

wendingding$ node os.js
当前方法名称: arch
调用执行结果: x64
_____________
当前方法名称: cpus
调用执行结果: [ { model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 730600, nice: 0, sys: 570160, idle: 4650220, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 247120, nice: 0, sys: 137070, idle: 5566140, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 667530, nice: 0, sys: 377510, idle: 4905300, irq: 0 } },
{ model: 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz',
speed: 2700,
times: { user: 256200, nice: 0, sys: 137540, idle: 5556590, irq: 0 } } ]
_____________
当前属性名称: EOL
_____________
当前方法名称: endianness
调用执行结果: LE
_____________
当前方法名称: freemem
调用执行结果: 159780864
_____________
当前方法名称: homedir
调用执行结果: /Users/文顶顶
_____________
当前方法名称: hostname
调用执行结果: wendingding.local
_____________
当前方法名称: loadavg
调用执行结果: [ 1.8583984375, 1.6640625, 1.6328125 ]
_____________
当前方法名称: networkInterfaces
调用执行结果: { lo0:
[ { address: '127.0.0.1',
netmask: '255.0.0.0',
family: 'IPv4',
mac: '00:00:00:00:00:00',
internal: true,
cidr: '127.0.0.1/8' },
{ address: '::1',
netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
family: 'IPv6',
mac: '00:00:00:00:00:00',
scopeid: 0,
internal: true,
cidr: '::1/128' }
···省略···
]}
_____________
当前方法名称: platform
调用执行结果: darwin
_____________
当前方法名称: release
调用执行结果: 17.4.0
_____________
当前方法名称: tmpdir
调用执行结果: /var/folders/6t/83z6zbfn0w56l2dzc_c2y1wh0000gn/T
_____________
当前方法名称: totalmem
调用执行结果: 8589934592
_____________
当前方法名称: type
调用执行结果: Darwin
_____________
当前方法名称: userInfo
调用执行结果: { uid: 501,
gid: 20,
username: 'wendingding',
homedir: '/Users/文顶顶',
shell: '/bin/bash' }
_____________
当前方法名称: uptime
调用执行结果: 8730
_____________
当前方法名称: getNetworkInterfaces
调用执行结果: { lo0:
[ { address: '127.0.0.1',
netmask: '255.0.0.0',
family: 'IPv4',
mac: '00:00:00:00:00:00',
internal: true },
{ address: '::1',
netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
family: 'IPv6',
mac: '00:00:00:00:00:00',
scopeid: 0,
internal: true },
{ address: 'fe80::1',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '00:00:00:00:00:00',
scopeid: 1,
internal: true } ],
en0:
[ { address: '192.168.51.245',
netmask: '255.255.255.0',
family: 'IPv4',
mac: 'a4:5e:60:e0:65:b1',
internal: false } ],
awdl0:
[ { address: 'fe80::58c6:9eff:feb1:f896',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '5a:c6:9e:b1:f8:96',
scopeid: 8,
internal: false } ],
utun0:
[ { address: 'fe80::18e0:16fa:bb6:ab15',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '00:00:00:00:00:00',
scopeid: 12,
internal: false } ] }
_____________
当前方法名称: tmpDir
调用执行结果: /var/folders/6t/83z6zbfn0w56l2dzc_c2y1wh0000gn/T
_____________
当前属性名称: constants
_____________
(node:2128) [DEP0023] DeprecationWarning: os.getNetworkInterfaces is deprecated.
(node:2128) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated.

整体结构

OS模块对象的EOL属性是一个字符串常量,该常量定义了相关操作系统的行末标志。如果是POSIX 系统,那么则对应的是\n符号,如果是Windows系统,那么对应的是\r\n符号。

现存的CPU架构可能存在:'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', 'x64'等情况。

二进制编译环境的字节顺序通常有两种:'BE'(大端模式)和'LE'(小端模式)

平均负载是系统活动的测量由操作系统自己计算得出,表达为一个分数. 通常理想的平均负载应该比系统的逻辑CPU的数目要少,平均负载是UNIX相关的概念,在Windows平台上,其返回值总是[0, 0, 0]。

关于OS常量和错误常量相关的信息,请参考官方文档

前端开发系列089-Node篇之os的更多相关文章

  1. openlayers5-webpack 入门开发系列一初探篇(附源码下载)

    前言 openlayers5-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载 ...

  2. leaflet-webpack 入门开发系列一初探篇(附源码下载)

    前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...

  3. 【Windows10 IoT开发系列】配置篇

    原文:[Windows10 IoT开发系列]配置篇 Windows10 For IoT是Windows 10家族的一个新星,其针对不同平台拥有不同的版本.而其最重要的一个版本是运行在Raspberry ...

  4. 旨在脱离后端环境的前端开发套件 - IDT Server篇

    IDT,一个基于Nodejs的,旨在脱离后端环境的前端开发套件,目的就是能让前端开发完全脱离后端的环境,无论后端是什么模板引擎(主流),都能应付自如. IDT主要包括两大部分:Server + Bui ...

  5. cesium-webpack 入门开发系列一初探篇(附源码下载)

    前言 cesium-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 we ...

  6. 前端开发【第2篇:CSS】

    鸡血 样式的属性多达几千个,但别担心,按照80-20原则,常用的也就几十个,你完全可以掌握它. Css初识 HTML的诞生 早期只有HTML的时候为了让HTML更美观一点,当时页面的开发者会把颜色写到 ...

  7. [置顶]【实用 .NET Core开发系列】- 导航篇

    前言 此系列从出发点来看,是 上个系列的续篇, 上个系列因为后面工作的原因,后面几篇没有写完,后来.NET Core出来之后,注意力就转移到了.NET Core上,所以再也就没有继续下去,此是原因之一 ...

  8. openlayers4 入门开发系列之风场图篇

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  9. openlayers4 入门开发系列之热力图篇(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  10. Android Metro风格的Launcher开发系列第三篇

    前言: 各位小伙伴,又到了每周更新文章了时候了,本来是周日能发出来呢,这不是赶上清明节吗,女王大人发话了,清明节前两天半陪她玩,只留给我周一下午半天时间写博客,哪里有女王哪里就有压迫呀有木有!好了闲话 ...

随机推荐

  1. Google发布A2A开源协议:“MCP+A2A”成未来标配?

    就在刚刚Google Cloud Next 25大会上,谷歌重磅开源Agent2Agent(A2A)协议,这项被类比为"AI界的HTTP协议"的技术标准,彻底打破了智能体间的信息孤 ...

  2. ArrayBlockingQueue的put方法底层原理

    一.ArrayBlockingQueue的put方法底层原理 ArrayBlockingQueue 是 Java 并发包 (java.util.concurrent) 中的一个基于数组实现的有界阻塞队 ...

  3. nohup启动jar包

    1. 后台启动jar包,并追加日志到日志文件run.log nohup java -jar wash-1.0-SNAPSHOT.jar >> run.log 2>&1 &am ...

  4. Web前端入门第 36 问:多图细说 CSS grid 网格布局(一)父元素容器相关属性

    grid 网格布局与 flex 弹性盒子布局一样,都需要控制 容器 跟 子元素 的样式才能做出想要的效果,部分场景只控制 容器 样式也行. grid 样式属性 一大堆 属性 来袭~~ 与网格相关的 C ...

  5. 全局搜索——Lucene.Net与盘古分词的实现思路

    一.Lucene.Net 1.Lucene.Net介绍: Lucene.Net是一个C#开发的开源全文索引库(自带的有索引管理.分词.查询) Lucene.Net.Index 提供索引管理,词组排序. ...

  6. centos安装npm和 nodejs

    NPM安装 00X01:创建目录 mkdir /usr/local/node/ cd /usr/local/node/ 00x02:下载安装包 wget https://npm.taobao.org/ ...

  7. 6.4K star!企业级流程引擎黑马,低代码开发竟能如此高效!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 AgileBPM 是一个基于Activiti7深度优化的企业级流程引擎开发平台,支持低代码. ...

  8. mysql服务未启动报错2003-Can't connect to MySQL server on 'localhost' (10061 "Unknown error")

    解决方法:开启mysql服务再试试 管理员身份运行cmd 开启mysql服务net start mysql 关闭mysql服务 net stop mysql

  9. AT_arc168_e [ARC168E] Subsegments with Large Sums 题解

    题意: \[\begin{aligned} &\text{给定长度为 } n \text{ 的数列 } \{a_i\} \text{ 和两个参数 } k, s \text{,将 } \{a_i ...

  10. Nginx No, Traefik Yes

    As we all know, Nginx is a very popular reverse proxy server. It is very stable and has a lot of fea ...