Node.js API详解之 os模块用法实例分析
本文实例讲述了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程序设计有所帮助。
上一篇: Unity3D实现攻击范围检测
下一篇: nginx http模块数据存储结构小结
推荐阅读
-
Python3.5内置模块之time与datetime模块用法实例分析
-
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
-
Python3.5内置模块之random模块用法实例分析
-
Python3.5 Pandas模块之DataFrame用法实例分析
-
Python3.5 Pandas模块之Series用法实例分析
-
Node.js JSON模块用法实例分析
-
Node.js操作系统OS模块用法分析
-
Python3.5内置模块之time与datetime模块用法实例分析
-
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
-
Node.js API详解之 tty功能与用法实例分析