欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-07 13:17:36
本文实例讲述了node.js api详解之 os模块用法。分享给大家供大家参考,具体如下:os是node的一个基础模块,提供了一些操作系统相关的属性接口。通过 const os = require('...

本文实例讲述了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程序设计有所帮助。