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程序设计有所帮助。

以上是 Node.js API详解之 os模块用法实例分析 的全部内容, 来源链接: utcz.com/z/311976.html

回到顶部