这篇文章主要讲解了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//123os.arch()

说明:

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

demo:

console.log(os.arch());//x64os.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());//LEos.freemem()

说明:

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

demo:

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

说明:

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

demo:

console.log(os.homedir());// /Users/xiaoqiangos.hostname()

说明:

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

demo:

console.log(os.hostname());//xiaoqiangMacBook-Pro.localos.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());// darwinos.release()

说明:

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

demo:

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

说明:

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

demo:

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

说明:

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

demo:

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

说明:

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

demo:

console.log(os.type());// Darwinos.uptime()

说明:

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

demo:

console.log(os.uptime());// 1293306os.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 API中os模块的使用方法有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。