Node.js API详解之 os模块用法实例分析


Posted in Javascript onMay 06, 2020

本文实例讲述了Node.js API详解之 os模块用法。分享给大家供大家参考,具体如下:

os是Node的一个基础模块,提供了一些操作系统相关的属性接口。

通过 const os = require('os'); 的方式引用os模块,我们接着看下os都有哪些功能

说明:

一个字符串常量,定义操作系统相关的行末标志:POSIX 系统上值为\n,Windows下的值为\r\n

demo:

console.log('abc'+ os.EOL +'123');
//abc
//123

os.arch()

说明:

该方法返回一个字符串,来说明当前运行环境的CPU架构,
可能的值有: 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', 'x64', 和 'x86'

demo:

console.log(os.arch());
//x64

os.constants

说明:

此常量是一个包含错误码,处理信号等系统常量的对象。具体描述可以查看:OS 常量

demo:

console.log(os.constants);
// { UV_UDP_REUSEADDR: 4,   //libuv 常量
//  errno:
//  { E2BIG: 7,
//   EACCES: 13,
//   EADDRINUSE: 48,
//   EADDRNOTAVAIL: 49,
//   EAFNOSUPPORT: 47,
//   EAGAIN: 35,
//   EALREADY: 37,
//   EBADF: 9,
//   EBADMSG: 94,
//   EBUSY: 16,
//   ECANCELED: 89,
//   ECHILD: 10,
//   ECONNABORTED: 53,
//   ECONNREFUSED: 61,
//   ECONNRESET: 54,
//   EDEADLK: 11,
//   EDESTADDRREQ: 39,
//   EDOM: 33,
//   EDQUOT: 69,
//   EEXIST: 17,
//   EFAULT: 14,
//   EFBIG: 27,
//   EHOSTUNREACH: 65,
//   EIDRM: 90,
//   EILSEQ: 92,
//   EINPROGRESS: 36,
//   EINTR: 4,
//   EINVAL: 22,
//   EIO: 5,
//   EISCONN: 56,
//   EISDIR: 21,
//   ELOOP: 62,
//   EMFILE: 24,
//   EMLINK: 31,
//   EMSGSIZE: 40,
//   EMULTIHOP: 95,
//   ENAMETOOLONG: 63,
//   ENETDOWN: 50,
//   ENETRESET: 52,
//   ENETUNREACH: 51,
//   ENFILE: 23,
//   ENOBUFS: 55,
//   ENODATA: 96,
//   ENODEV: 19,
//   ENOENT: 2,
//   ENOEXEC: 8,
//   ENOLCK: 77,
//   ENOLINK: 97,
//   ENOMEM: 12,
//   ENOMSG: 91,
//   ENOPROTOOPT: 42,
//   ENOSPC: 28,
//   ENOSR: 98,
//   ENOSTR: 99,
//   ENOSYS: 78,
//   ENOTCONN: 57,
//   ENOTDIR: 20,
//   ENOTEMPTY: 66,
//   ENOTSOCK: 38,
//   ENOTSUP: 45,
//   ENOTTY: 25,
//   ENXIO: 6,
//   EOPNOTSUPP: 102,
//   EOVERFLOW: 84,
//   EPERM: 1,
//   EPIPE: 32,
//   EPROTO: 100,
//   EPROTONOSUPPORT: 43,
//   EPROTOTYPE: 41,
//   ERANGE: 34,
//   EROFS: 30,
//   ESPIPE: 29,
//   ESRCH: 3,
//   ESTALE: 70,
//   ETIME: 101,
//   ETIMEDOUT: 60,
//   ETXTBSY: 26,
//   EWOULDBLOCK: 35,
//   EXDEV: 18 },
//  signals:
//  { SIGHUP: 1,
//   SIGINT: 2,
//   SIGQUIT: 3,
//   SIGILL: 4,
//   SIGTRAP: 5,
//   SIGABRT: 6,
//   SIGIOT: 6,
//   SIGBUS: 10,
//   SIGFPE: 8,
//   SIGKILL: 9,
//   SIGUSR1: 30,
//   SIGSEGV: 11,
//   SIGUSR2: 31,
//   SIGPIPE: 13,
//   SIGALRM: 14,
//   SIGTERM: 15,
//   SIGCHLD: 20,
//   SIGCONT: 19,
//   SIGSTOP: 17,
//   SIGTSTP: 18,
//   SIGTTIN: 21,
//   SIGTTOU: 22,
//   SIGURG: 16,
//   SIGXCPU: 24,
//   SIGXFSZ: 25,
//   SIGVTALRM: 26,
//   SIGPROF: 27,
//   SIGWINCH: 28,
//   SIGIO: 23,
//   SIGINFO: 29,
//   SIGSYS: 12 
//  } 
// }

os.cpus()

说明:

该方法返回一个对象数组, 包含每个逻辑 CPU 内核的信息。

demo:

console.log(os.cpus());
// [ { model: 'Intel(R) Core(TM) i5-5287U CPU @ 2.90GHz',
//   speed: 2900,
//   times: { 
//   user: 96756760, //CPU花费在用户模式下的毫秒时间数
//   nice: 0,  //CPU花费在良好模式下的毫秒时间数
//   sys: 80507720, //CPU花费在系统模式下的毫秒时间数
//   idle: 606147830, //CPU花费在空闲模式下的毫秒时间数
//   irq: 0  //CPU花费在中断请求模式下的毫秒时间数
//   } 
//  },
//  { model: 'Intel(R) Core(TM) i5-5287U CPU @ 2.90GHz',
//   speed: 2900,
//   times: { user: 43796970, nice: 0, sys: 37796280, idle: 701811920, irq: 0 } 
//  },
//  { model: 'Intel(R) Core(TM) i5-5287U CPU @ 2.90GHz',
//   speed: 2900,
//   times: { user: 94060830, nice: 0, sys: 68641950, idle: 620702410, irq: 0 } 
//  },
//  { model: 'Intel(R) Core(TM) i5-5287U CPU @ 2.90GHz',
//   speed: 2900,
//   times: { user: 45641410, nice: 0, sys: 39136540, idle: 698627210, irq: 0 } 
//  } ]

os.endianness()

说明:

该方法返回一个字符串,表明Node.js二进制编译环境的字节顺序,可能的值为:'BE'(Big-Endian) 大端模式,'LE'(Little-Endian) 小端模式
大端模式:是指数据的高字节保存在内存的低地址中,数据的低字节保存在内存的高地址中。
小端模式:是指数据的高字节保存在内存的高地址中,数据的低字节保存在内存的低地址中。
以 0x12345678 为例:

demo:

console.log(os.endianness());
//LE

os.freemem()

说明:

该方法以整数的形式返回空闲系统内存的字节数

demo:

console.log(os.freemem());
//7155720192

os.homedir()

说明:

该方法以字符串的形式返回当前用户的home目录

demo:

console.log(os.homedir());
// /Users/xiaoqiang

os.hostname()

说明:

该方法以字符串的形式返回操作系统的主机名

demo:

console.log(os.hostname());
//xiaoqiangMacBook-Pro.local

os.loadavg()

说明:

该方法返回一个数组,包含1, 5, 15分钟平均负载.

demo:

console.log(os.loadavg());
//[ 2.57080078125, 2.38037109375, 2.30908203125 ] windows下返回[0, 0, 0]

os.networkInterfaces()

说明:

该方法返回一个对象,包含被赋予网络地址的网络接口.

demo:

console.log(os.networkInterfaces());
// {
//  lo: [
//   {
//    address: '127.0.0.1', //被赋予的 IPv4 或 IPv6 地址
//    netmask: '255.0.0.0', //IPv4 或 IPv6 子网掩码
//    family: 'IPv4', //IPv4 或 IPv6
//    mac: '00:00:00:00:00:00', //网络接口的MAC地址
//    internal: true, //如果 网络接口是loopback或相似的远程不能用的接口时, 值为true,否则为false
//    cidr: '127.0.0.1/8' //以 CIDR 表示法分配的带有路由前缀的 IPv4 或 IPv6 地址。如果 netmask 参数不可用,则该属性是 null
//   },
//   {
//    address: '::1',
//    netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
//    family: 'IPv6',
//    mac: '00:00:00:00:00:00',
//    internal: true,
//    cidr: '::1/128'
//   }
//  ],
//  eth0: [
//   {
//    address: '192.168.1.108',
//    netmask: '255.255.255.0',
//    family: 'IPv4',
//    mac: '01:02:03:0a:0b:0c',
//    internal: false,
//    cidr: '192.168.1.108/24'
//   },
//   {
//    address: 'fe80::a00:27ff:fe4e:66a1',
//    netmask: 'ffff:ffff:ffff:ffff::',
//    family: 'IPv6',
//    mac: '01:02:03:0a:0b:0c',
//    internal: false,
//    cidr: 'fe80::a00:27ff:fe4e:66a1/64'
//   }
//  ]
// }

os.platform()

说明:

该方法返回Node.js编译时的操作系统平台,值可能为:'aix','darwin','freebsd','linux','openbsd','sunos','win32′

demo:

console.log(os.platform());
// darwin

os.release()

说明:

该方法返回一个字符串, 指定操作系统的发行版.

demo:

console.log(os.release());
// 17.2.0

os.tmpdir()

说明:

该方法返回一个字符串, 指定操作系统的发行版.

demo:

console.log(os.tmpdir());
// /var/folders/xv/4dbb00000gn/T

os.totalmem()

说明:

该方法以整数的形式返回所有系统内存的字节数.

demo:

console.log(os.totalmem());
//17179869184

os.type()

说明:

该方法返回一个字符串,表明操作系统的名字

demo:

console.log(os.type());
// Darwin

os.uptime()

说明:

该方法在几秒内返回操作系统的上线时间

demo:

console.log(os.uptime());
// 1293306

os.userInfo([options])

说明:

该方法用来获取当前有效用户的信息
该方法传递一个encoding参数,用来指定返回值的编码方式,默认utf8,也可以设置为:buffer。

demo:

console.log(os.userInfo());
// { 
//  uid: 501,
//  gid: 20,
//  username: 'xiaoqiang',
//  homedir: '/Users/xiaoqiang',
//  shell: '/bin/bash' 
// }
 
console.log(os.userInfo({encoding: 'buffer'}));
// { 
//  uid: 501,
//  gid: 20,
//  username: ,
//  homedir: ,
//  shell: 
// }

希望本文所述对大家node.js程序设计有所帮助。

Javascript 相关文章推荐
各种常用浏览器getBoundingClientRect的解析
May 21 Javascript
js和jquery对dom节点的操作(创建/追加)
Apr 21 Javascript
jquery实现一个简单好用的弹出框
Sep 26 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
Sep 01 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
Jun 12 Javascript
深入理解jquery中extend的实现
Dec 22 Javascript
jQuery中的on与bind绑定事件区别实例详解
Feb 28 Javascript
vue.js移动端tab组件的封装实践实例
Jun 30 Javascript
vue select选择框数据变化监听方法
Aug 24 Javascript
layui use 定义js外部引用函数的方法
Sep 26 Javascript
vue-router 按需加载 component: () => import() 报错的解决
Sep 22 Javascript
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
js实现无缝轮播图特效
May 09 #Javascript
js实现上传按钮并显示缩略图小轮子
May 04 #Javascript
js代码实现轮播图
May 04 #Javascript
原生js实现轮播图特效
May 04 #Javascript
jquery实现手风琴案例
May 04 #jQuery
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
May 03 #Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
May 03 #Javascript
You might like
文件系统基本操作类
2006/11/23 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
javascript 单选框,多选框美化代码
2008/08/01 Javascript
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python3中的2to3转换工具使用示例
2015/06/12 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
python实现键盘控制鼠标移动
2020/11/27 Python
解决pyinstaller打包pyqt5的问题
2019/01/08 Python
python实现图片转字符小工具
2019/04/30 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
房地产销售员的自我评价分享
2013/12/04 职场文书
公务员总结性个人自我评价
2013/12/05 职场文书
分家协议书
2014/04/21 职场文书
大学新学期计划书
2014/04/28 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
竞选学委演讲稿
2014/09/13 职场文书
初中生活随笔
2015/08/15 职场文书
比较node.js和Deno
2021/04/27 Javascript
JavaScript原型链详解
2021/11/07 Javascript
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python