Node.js API详解之 os模块用法实例分析
本文实例讲述了Node.jsAPI详解之os模块用法。分享给大家供大家参考,具体如下:
os是Node的一个基础模块,提供了一些操作系统相关的属性接口。
通过constos=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-5287UCPU@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-5287UCPU@2.90GHz', //speed:2900, //times:{user:43796970,nice:0,sys:37796280,idle:701811920,irq:0} //}, //{model:'Intel(R)Core(TM)i5-5287UCPU@2.90GHz', //speed:2900, //times:{user:94060830,nice:0,sys:68641950,idle:620702410,irq:0} //}, //{model:'Intel(R)Core(TM)i5-5287UCPU@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程序设计有所帮助。