前端开发系列089-Node篇之os
一、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的更多相关文章
- openlayers5-webpack 入门开发系列一初探篇(附源码下载)
前言 openlayers5-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载 ...
- leaflet-webpack 入门开发系列一初探篇(附源码下载)
前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...
- 【Windows10 IoT开发系列】配置篇
原文:[Windows10 IoT开发系列]配置篇 Windows10 For IoT是Windows 10家族的一个新星,其针对不同平台拥有不同的版本.而其最重要的一个版本是运行在Raspberry ...
- 旨在脱离后端环境的前端开发套件 - IDT Server篇
IDT,一个基于Nodejs的,旨在脱离后端环境的前端开发套件,目的就是能让前端开发完全脱离后端的环境,无论后端是什么模板引擎(主流),都能应付自如. IDT主要包括两大部分:Server + Bui ...
- cesium-webpack 入门开发系列一初探篇(附源码下载)
前言 cesium-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 we ...
- 前端开发【第2篇:CSS】
鸡血 样式的属性多达几千个,但别担心,按照80-20原则,常用的也就几十个,你完全可以掌握它. Css初识 HTML的诞生 早期只有HTML的时候为了让HTML更美观一点,当时页面的开发者会把颜色写到 ...
- [置顶]【实用 .NET Core开发系列】- 导航篇
前言 此系列从出发点来看,是 上个系列的续篇, 上个系列因为后面工作的原因,后面几篇没有写完,后来.NET Core出来之后,注意力就转移到了.NET Core上,所以再也就没有继续下去,此是原因之一 ...
- openlayers4 入门开发系列之风场图篇
前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...
- openlayers4 入门开发系列之热力图篇(附源码下载)
前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...
- Android Metro风格的Launcher开发系列第三篇
前言: 各位小伙伴,又到了每周更新文章了时候了,本来是周日能发出来呢,这不是赶上清明节吗,女王大人发话了,清明节前两天半陪她玩,只留给我周一下午半天时间写博客,哪里有女王哪里就有压迫呀有木有!好了闲话 ...
随机推荐
- 使用CAMEL创建第一个Agent Society
CAMEL介绍 CAMEL 是一个开源社区,致力于探索代理的扩展规律.相信,在大规模研究这些代理可以提供对其行为.能力和潜在风险的宝贵见解.为了促进这一领域的研究,实现了并支持各种类型的代理.任务.提 ...
- 关于:js使用$.parseJSON字符串转json对象报错Uncaught SyntaxError- Unexpected token o in JSON at position 1
今天使用js使用$.parseJSON字符串转json对象报错Uncaught SyntaxError- Unexpected token o in JSON at position 1,一直找不到原 ...
- 单元测试(一)——xUnit
一.为什么要做单元测试 可以频繁测试 比人工测试要快 测试代码和人工代码紧密结合 测试结果非常可靠 更容易更快发现错误 二.测试坐标图 一般开发会做单元测试和集成测试 三.测试分成三个阶段 四.Xun ...
- AI 辅助开发实战分享:解决Selenium自动化设置Ant时间组件难题
AI 辅助开发实战分享:解决Selenium自动化设置Ant时间组件难题 在软件开发这一块,自动化那可是提高效率.少出错的关键.不过呢,在实际搞自动化开发的时候,开发者们常常会碰到各种各样的麻烦和障碍 ...
- 【HUST】网安|操作系统实验|实验二 进程管理与死锁
目的 1)理解进程/线程的概念和应用编程过程: 2)理解进程/线程的同步机制和应用编程: 任务 1)在Linux下创建一对父子进程. 2)在Linux下创建2个线程A和B,循环输出数据或字符串. 3) ...
- 设计模式之“状态模式(State)”(未完整)
一.状态模式(State) 状态模式是当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 二.状态模式的作用 状态模式主要解决的是当控制一个对象状态转换条件表达式过于复杂时的情况. ...
- .NET 10 Preview 4中ASP.NET Core 改进
.NET团队在5月13日发布了.NET 10 Preview 4: https://devblogs.microsoft.com/dotnet/dotnet-10-preview-4/.该版本虽无突破 ...
- codeup之奖金计算
codeup c2奖金计算 Description 某企业发放的奖金根据利润提成.利润I低于或等于100000时,奖金可提10%:利润高于100000元,低于200000元(100000<I&l ...
- 汇编语言笔记——8086&&寻址方式与指令系统
汇编语言中 语句不区分大小写,编译软件会自动识别语句 用户自定义的变量和符号必须区分大小写. 8086 1.寄存器 cpu在访问存储器时,必须指明: 段寄存器:所访问的存储单元属于哪个段 偏移量:相应 ...
- iOS快捷指令——记录今天、今年已过进度的工具
起因是看到了 大佬博客 里面一个计时的小工具,于是也想搞一个来提醒自己珍惜时间. 经过一段时间对快捷指令的摸索,最终选择了如下的方式完成: 快捷指令的链接在这里给出: https://www.iclo ...