Node.js API詳解之 os模塊用法實(shí)例分析
本文實(shí)例講述了Node.js API詳解之 os模塊用法。分享給大家供大家參考,具體如下:
os是Node的一個(gè)基礎(chǔ)模塊,提供了一些操作系統(tǒng)相關(guān)的屬性接口。
通過(guò) const os = require('os');
的方式引用os模塊,我們接著看下os都有哪些功能
說(shuō)明:
一個(gè)字符串常量,定義操作系統(tǒng)相關(guān)的行末標(biāo)志:POSIX 系統(tǒng)上值為\n,Windows下的值為\r\n
demo:
console.log('abc'+ os.EOL +'123'); //abc //123
os.arch()
說(shuō)明:
該方法返回一個(gè)字符串,來(lái)說(shuō)明當(dāng)前運(yùn)行環(huán)境的CPU架構(gòu),
可能的值有: 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', 'x64', 和 'x86'
demo:
console.log(os.arch()); //x64
os.constants
說(shuō)明:
此常量是一個(gè)包含錯(cuò)誤碼,處理信號(hào)等系統(tǒng)常量的對(duì)象。具體描述可以查看: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()
說(shuō)明:
該方法返回一個(gè)對(duì)象數(shù)組, 包含每個(gè)邏輯 CPU 內(nèi)核的信息。
demo:
console.log(os.cpus()); // [ { model: 'Intel(R) Core(TM) i5-5287U CPU @ 2.90GHz', // speed: 2900, // times: { // user: 96756760, //CPU花費(fèi)在用戶模式下的毫秒時(shí)間數(shù) // nice: 0, //CPU花費(fèi)在良好模式下的毫秒時(shí)間數(shù) // sys: 80507720, //CPU花費(fèi)在系統(tǒng)模式下的毫秒時(shí)間數(shù) // idle: 606147830, //CPU花費(fèi)在空閑模式下的毫秒時(shí)間數(shù) // irq: 0 //CPU花費(fèi)在中斷請(qǐng)求模式下的毫秒時(shí)間數(shù) // } // }, // { 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()
說(shuō)明:
該方法返回一個(gè)字符串,表明Node.js二進(jìn)制編譯環(huán)境的字節(jié)順序,可能的值為:'BE'(Big-Endian) 大端模式,'LE'(Little-Endian) 小端模式
大端模式:是指數(shù)據(jù)的高字節(jié)保存在內(nèi)存的低地址中,數(shù)據(jù)的低字節(jié)保存在內(nèi)存的高地址中。
小端模式:是指數(shù)據(jù)的高字節(jié)保存在內(nèi)存的高地址中,數(shù)據(jù)的低字節(jié)保存在內(nèi)存的低地址中。
以 0x12345678 為例:
demo:
console.log(os.endianness()); //LE
os.freemem()
說(shuō)明:
該方法以整數(shù)的形式返回空閑系統(tǒng)內(nèi)存的字節(jié)數(shù)
demo:
console.log(os.freemem()); //7155720192
os.homedir()
說(shuō)明:
該方法以字符串的形式返回當(dāng)前用戶的home目錄
demo:
console.log(os.homedir()); // /Users/xiaoqiang
os.hostname()
說(shuō)明:
該方法以字符串的形式返回操作系統(tǒng)的主機(jī)名
demo:
console.log(os.hostname()); //xiaoqiangMacBook-Pro.local
os.loadavg()
說(shuō)明:
該方法返回一個(gè)數(shù)組,包含1, 5, 15分鐘平均負(fù)載.
demo:
console.log(os.loadavg()); //[ 2.57080078125, 2.38037109375, 2.30908203125 ] windows下返回[0, 0, 0]
os.networkInterfaces()
說(shuō)明:
該方法返回一個(gè)對(duì)象,包含被賦予網(wǎng)絡(luò)地址的網(wǎng)絡(luò)接口.
demo:
console.log(os.networkInterfaces()); // { // lo: [ // { // address: '127.0.0.1', //被賦予的 IPv4 或 IPv6 地址 // netmask: '255.0.0.0', //IPv4 或 IPv6 子網(wǎng)掩碼 // family: 'IPv4', //IPv4 或 IPv6 // mac: '00:00:00:00:00:00', //網(wǎng)絡(luò)接口的MAC地址 // internal: true, //如果 網(wǎng)絡(luò)接口是loopback或相似的遠(yuǎn)程不能用的接口時(shí), 值為true,否則為false // cidr: '127.0.0.1/8' //以 CIDR 表示法分配的帶有路由前綴的 IPv4 或 IPv6 地址。如果 netmask 參數(shù)不可用,則該屬性是 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()
說(shuō)明:
該方法返回Node.js編譯時(shí)的操作系統(tǒng)平臺(tái),值可能為:'aix','darwin','freebsd','linux','openbsd','sunos','win32′
demo:
console.log(os.platform()); // darwin
os.release()
說(shuō)明:
該方法返回一個(gè)字符串, 指定操作系統(tǒng)的發(fā)行版.
demo:
console.log(os.release()); // 17.2.0
os.tmpdir()
說(shuō)明:
該方法返回一個(gè)字符串, 指定操作系統(tǒng)的發(fā)行版.
demo:
console.log(os.tmpdir()); // /var/folders/xv/4dbb00000gn/T
os.totalmem()
說(shuō)明:
該方法以整數(shù)的形式返回所有系統(tǒng)內(nèi)存的字節(jié)數(shù).
demo:
console.log(os.totalmem()); //17179869184
os.type()
說(shuō)明:
該方法返回一個(gè)字符串,表明操作系統(tǒng)的名字
demo:
console.log(os.type()); // Darwin
os.uptime()
說(shuō)明:
該方法在幾秒內(nèi)返回操作系統(tǒng)的上線時(shí)間
demo:
console.log(os.uptime()); // 1293306
os.userInfo([options])
說(shuō)明:
該方法用來(lái)獲取當(dāng)前有效用戶的信息
該方法傳遞一個(gè)encoding參數(shù),用來(lái)指定返回值的編碼方式,默認(rèn)utf8,也可以設(shè)置為: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: // }
希望本文所述對(duì)大家node.js程序設(shè)計(jì)有所幫助。
- 詳解Node.JS模塊 process
- 詳細(xì)分析Node.js 模塊系統(tǒng)
- Node.js API詳解之 vm模塊用法實(shí)例分析
- Node.js API詳解之 assert模塊用法實(shí)例分析
- Node.js API詳解之 repl模塊用法實(shí)例分析
- Node.js API詳解之 readline模塊用法詳解
- Node.js API詳解之 timer模塊用法實(shí)例分析
- Node.js設(shè)置定時(shí)任務(wù)之node-schedule模塊的使用詳解
- NODE.JS加密模塊CRYPTO常用方法介紹
- Node.js模塊加載詳解
- 談?wù)刵ode.js中的模塊系統(tǒng)
相關(guān)文章
nodejs async異步常用函數(shù)總結(jié)(推薦)
這篇文章主要介紹了nodejs async異步常用函數(shù)總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-11-11Node中node_modules文件夾及package.json文件的作用說(shuō)明
這篇文章主要介紹了Node中node_modules文件夾及package.json文件的作用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09詳解利用nodejs對(duì)本地json文件進(jìn)行增刪改查
這篇文章主要介紹了詳解利用nodejs對(duì)本地json文件進(jìn)行增刪改查,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09在Node.js中實(shí)現(xiàn)關(guān)注列表和粉絲列表的方法示例
在社交網(wǎng)絡(luò)或者任何需要用戶交互的應(yīng)用中,實(shí)現(xiàn)關(guān)注和被關(guān)注的功能是非常常見(jiàn)的需求,本文將通過(guò)一個(gè)簡(jiǎn)單的例子,展示如何在Node.js環(huán)境下實(shí)現(xiàn)用戶的關(guān)注列表和粉絲列表,需要的朋友可以參考下2024-04-04Node.js API詳解之 os模塊用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 os模塊用法,結(jié)合實(shí)例形式分析了Node.js API中os模塊基本功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05