- assert - 断言
- Buffer - 缓冲器
- child_process - 子进程
- cluster - 集群
- console - 控制台
- crypto - 加密
- dgram - 数据报
- dns - 域名服务器
- Error - 异常
- events - 事件
- fs - 文件系统
- global - 全局变量
- http - HTTP
- https - HTTPS
- module - 模块
- net - 网络
- os - 操作系统
- path - 路径
- process - 进程
- querystring - 查询字符串
- readline - 逐行读取
- repl - 交互式解释器
- stream - 流
- string_decoder - 字符串解码器
- timer - 定时器
- tls - 安全传输层
- tty - 终端
- url - 网址
- util - 实用工具
- v8 - V8引擎
- vm - 虚拟机
- zlib - 压缩
Node.js v10.8.0 文档
目录
os (操作系统)#
os
模块提供了一些操作系统相关的实用方法。可以这么引用它:
const os = require('os');
os.EOL#
一个字符串常量,定义操作系统相关的行末标志:
\n
在 POSIX 系统上\r\n
在 Windows系统上
os.arch()#
- 返回: <string>
os.arch()
方法返回一个字符串, 表明 Node.js 二进制编译所用的
操作系统CPU架构.
现在可能的值有: 'arm'
, 'arm64'
, 'ia32'
, 'mips'
,
'mipsel'
, 'ppc'
, 'ppc64'
, 's390'
, 's390x'
, 'x32'
, 'x64'
。
等价于 process.arch
.
os.constants#
返回一个包含错误码,处理信号等通用的操作系统特定常量的对象. 现在, 这些特定的常量的定义被描述在OS Constants。
os.cpus()#
- Returns: <Array>
os.cpus()
方法返回一个对象数组, 包含每个逻辑 CPU 内核的信息.
下面的属性包含在每个对象中:
For example:
[
{
model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times: {
user: 252020,
nice: 0,
sys: 30340,
idle: 1070356870,
irq: 0
}
},
{
model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times: {
user: 306960,
nice: 0,
sys: 26980,
idle: 1071569080,
irq: 0
}
},
{
model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times: {
user: 248450,
nice: 0,
sys: 21750,
idle: 1070919370,
irq: 0
}
},
{
model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times: {
user: 256880,
nice: 0,
sys: 19430,
idle: 1070905480,
irq: 20
}
},
{
model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times: {
user: 511580,
nice: 20,
sys: 40900,
idle: 1070842510,
irq: 0
}
},
{
model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times: {
user: 291660,
nice: 0,
sys: 34360,
idle: 1070888000,
irq: 10
}
},
{
model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times: {
user: 308260,
nice: 0,
sys: 55410,
idle: 1071129970,
irq: 880
}
},
{
model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times: {
user: 266450,
nice: 1480,
sys: 34920,
idle: 1072572010,
irq: 30
}
}
]
注意: 因为nice
的值是UNIX相关的, 在Windows系统上,
所有处理器的 nice
值总是0.
os.endianness()#
- Returns: <string>
os.endianness()
方法返回一个字符串,表明Node.js二进制编译环境的字节顺序.
可能的值:
'BE'
大端模式'LE'
小端模式
os.freemem()#
- Returns: <integer>
os.freemem()
方法以整数的形式回空闲系统内存
的字节数.
os.homedir()#
- Returns: <string>
os.homedir()
方法以字符串的形式返回当前用户的home目录.
os.hostname()#
- Returns: <string>
os.hostname()
方法以字符串的形式返回操作系统的主机名.
os.loadavg()#
- Returns: <Array>
os.loadavg()
方法返回一个数组,包含1, 5, 15分钟平均负载.
平均负载是系统活动的测量,由操作系统计算得出,表达为一个分数.
一般来说,平均负载应该理想地比系统的逻辑CPU的数目要少.
平均负载是UNIX相关的概念,在Windows平台上没有对应的概念.
在Windows上,其返回值总是[0, 0, 0]
.
os.networkInterfaces()#
- Returns: <Object>
os.networkInterfaces()
方法返回一个对象,包含只有被赋予网络地址的网络接口.
在返回对象的每个关键词都指明了一个网络接口.
返回的值是一个对象数组, 每个都描述了赋予的网络地址.
被赋予网络地址的对象包含的属性:
address
<string> 被赋予的 IPv4 或 IPv6 地址netmask
<string> IPv4 或 IPv6 子网掩码family
<string>IPv4
或IPv6
mac
<string> 网络接口的MAC地址internal
<boolean> 如果 网络接口是loopback或相似的远程不能用的接口时, 值为true
,否则为false
scopeid
<number> IPv6 数字领域识别码 (只有当family
是IPv6
时可用)cidr
<string> 以 CIDR 表示法分配的带有路由前缀的 IPv4 或 IPv6 地址。如果netmask
参数不可用,则该属性是null
。
{
lo: [
{
address: '127.0.0.1',
netmask: '255.0.0.0',
family: 'IPv4',
mac: '00:00:00:00:00:00',
internal: true,
cidr: '127.0.0.1/8'
},
{
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()#
- Returns: <string>
os.platform()
方法返回一个字符串, 指定Node.js编译时的操作系统平台
当前可能的值有:
'aix'
'darwin'
'freebsd'
'linux'
'openbsd'
'sunos'
'win32'
等价于 process.platform
.
注意: 如果Node.js 在Android操作系统上构建, 'android'
值
可能被返回. 然而, Android支持Node.js在当前被认为是实验期.
os.release()#
- Returns: <string>
os.release()
方法返回一个字符串, 指定操作系统的发行版.
注意: 在POSIX系统上, 操作系统发行版是通过
调用 uname(3)
得到的. 在 Windows系统上, 用GetVersionExW()
. 请查看
https://en.wikipedia.org/wiki/Uname#Examples 获取更多信息.
os.tmpdir()#
- Returns: <string>
os.tmpdir()
方法返回一个字符串, 表明操作系统的
默认临时文件目录.
os.totalmem()#
- Returns: <integer>
os.totalmem()
方法以整数的形式返回所有系统内存的字节数.
os.type()#
- Returns: <string>
os.type()
方法返回一个字符串,表明操作系统的名字,
由 uname(3)
返回.举个例子, 'Linux'
在 Linux系统上, 'Darwin'
在 macOS 系统上,'Windows_NT'
在 Windows系统上.
请查看https://en.wikipedia.org/wiki/Uname#Examples 获取其他关于在不同
操作系统上执行 uname(3)
,得到输出的信息.
os.uptime()#
- Returns: <integer>
os.uptime()
方法在几秒内返回操作系统的上线时间.
注意:在Windows平台上,这个方法返回的秒值包含分数,请用Math.floor()
获取整数值
os.userInfo([options])#
-
options
<Object>encoding
<string> 用于解释结果字符串的字符编码. 如果encoding
被设置为'buffer'
,username
,shell
, 和homedir
的值将成为Buffer
的实例. (默认是: 'utf8')
- Returns: <Object>
os.userInfo()
方法当前有效用户的信息 -- 在 POSIX平台上, 这通常是password 文件的子集. 返回的对象包括 username
, uid
, gid
, shell
, 和 homedir
.
在Windows系统上, uid
和 gid
域是 -1
, and shell
是 null
.
homedir
的值由os.userInfo()
返回, 由操作系统提供.
这区别了os.homedir()
的结果, 它在求助操作系统响应之前,
为home目录请求几个环境变量.
OS 常量#
下面的常量被os.constants
所输出.
注意: 并不是所有的常量在每一个操作系统上都是可用的.
信号常量#
下面的信号常量由 os.constants.signals
给出:
常量 | 描述 |
---|---|
SIGHUP |
发送来表明当一个控制终端关闭或者是父进程退出. |
SIGINT | 发送来表明当一个用户期望中断一个进程时. (`(Ctrl+C)`). |
SIGQUIT |
发送来表明当一个用户希望终止一个进程并且执行核心转储. |
SIGILL |
发送给一个进程来通知它已经试图执行一个非法的,畸形的,未知的或特权的指令. |
SIGTRAP |
发送给一个进程当异常已经发生了. |
SIGABRT |
发送给一个进程来请求终止 |
SIGIOT |
SIGABRT 的同义词 |
SIGBUS |
发送给一个进程来通知它已经造成了总线错误. |
SIGFPE |
发送给一个进程来通知它已经执行了一个非法的算术操作. |
SIGKILL |
发送给一个进程来立即终止它. |
SIGUSR1 SIGUSR2 |
发送给一个进程来确定它的用户定义情况. |
SIGSEGV |
发送给一个进程来通知段错误. |
SIGPIPE |
发送给一个进程当它试图写入一个非连接的管道时. |
SIGALRM |
发送给一个进程当系统时钟消逝时. |
SIGTERM |
发送给一个进程来请求终止. |
SIGCHLD |
发送给一个进程当一个子进程终止时. |
SIGSTKFLT |
发送给一个进程来表明一个协处理器的栈错误. |
SIGCONT |
发送来通知操作系统继续一个暂停的进程. |
SIGSTOP |
发送来通知操作系统暂停一个进程. |
SIGTSTP |
发送给一个进程来请求它停止. |
SIGBREAK |
发送来表明当一个用户希望终止一个进程. |
SIGTTIN |
发送给一个进程当它在后台读取TTY时. |
SIGTTOU |
发送给一个进程当它在后台写入TTY时. |
SIGURG |
发送给一个进程当socket由紧急的数据需要读取时. |
SIGXCPU |
发送给一个进程当它超过他在CPU使用上的限制时. |
SIGXFSZ |
发送给一个进程当它文件成长的比最大允许的值还大时. |
SIGVTALRM |
发送给一个进程当一个虚拟时钟消逝时. |
SIGPROF |
发送给一个进程当一个系统时钟消逝时. |
SIGWINCH |
发送给一个进程当控制终端改变它的大小. |
SIGIO |
发送给一个进程当I/O可用时. |
SIGPOLL |
SIGIO 同义词 |
SIGLOST |
发送给一个进程当文件锁丢失时. |
SIGPWR |
发送给一个进程来通知功率错误. |
SIGINFO |
SIGPWR 同义词 |
SIGSYS |
发送给一个进程来通知有错误的参数. |
SIGUNUSED |
SIGSYS 的同义词 |
错误常量#
下面的错误常量由 os.constants.errno
给出:
POSIX 错误常量#
常量 | 描述 |
---|---|
E2BIG |
表明参数列表比期望的要长. |
EACCES |
表明操作没有足够的权限. |
EADDRINUSE |
表明该网络地址已经在使用. |
EADDRNOTAVAIL |
表明该网络地址当前不能使用. |
EAFNOSUPPORT |
表明该网络地址簇不被支持. |
EAGAIN |
表明当前没有可用数据,稍后再次尝试操作. |
EALREADY |
表明socket有一个即将发生的连接在进行中. |
EBADF |
表明一个文件描述符不可用. |
EBADMSG |
表明一个无效的数据信息. |
EBUSY |
表明一个设备或资源处于忙碌中. |
ECANCELED |
表明一个操作被取消. |
ECHILD |
表明没有子进程. |
ECONNABORTED |
表明网络连接已经被终止. |
ECONNREFUSED |
表明网络连接被拒绝. |
ECONNRESET |
表明网络连接被重置 . |
EDEADLK |
表明一个资源死锁已经被避免 . |
EDESTADDRREQ |
表明需要目的地址 . |
EDOM |
表明参数超过了函数的作用域 . |
EDQUOT |
表明已经超过磁盘指标 . |
EEXIST |
表明文件已经存在 . |
EFAULT |
表明一个无效的指针地址 . |
EFBIG |
表明文件太大 . |
EHOSTUNREACH |
表明主机不可达 . |
EIDRM |
表明识别码已经被移除 . |
EILSEQ |
表明一个非法的字节序 . |
EINPROGRESS |
表明一个操作已经在进行中 . |
EINTR |
表明一个函数调用被中断 . |
EINVAL |
表明提供了一个无效的参数 . |
EIO |
表明一个其他的不确定的 I/O 错误. |
EISCONN |
表明socket已经连接 . |
EISDIR |
表明路径是目录 . |
ELOOP |
表明路径上有太多层次的符号连接 . |
EMFILE |
表明有太多打开的文件 . |
EMLINK |
表明文件上有太多的硬连接 . |
EMSGSIZE |
表明提供的信息太长 . |
EMULTIHOP |
表明多跳被尝试 . |
ENAMETOOLONG |
表明文件名太长 . |
ENETDOWN |
表明网络关闭 . |
ENETRESET |
表明连接被网络终止 . |
ENETUNREACH |
表明网络不可达 . |
ENFILE |
表明系统中打开了太多的文件 . |
ENOBUFS |
表明没有有效的缓存空间 . |
ENODATA |
表明在流头读取队列上没有可用的信息 . |
ENODEV |
表明没有这样的设备 . |
ENOENT |
表明没有这样的文件或目录 . |
ENOEXEC |
表明一个执行格式错误 . |
ENOLCK |
表明没有可用的锁 . |
ENOLINK |
表明链接在服务 . |
ENOMEM |
表明没有足够的空间 . |
ENOMSG |
表明想要的数据类型没有信息 . |
ENOPROTOOPT |
表明给定的协议不可用 . |
ENOSPC |
表明该设备上没有可用的空间 . |
ENOSR |
表明没有可用的流资源 . |
ENOSTR |
表明给定的资源不是流 . |
ENOSYS |
表明功能没有被实现 . |
ENOTCONN |
表明socket没有连接 . |
ENOTDIR |
表明路径不是目录 . |
ENOTEMPTY |
表明目录是非空的 . |
ENOTSOCK |
表明给定的项目不是socket . |
ENOTSUP |
表明给定的操作不受支持 . |
ENOTTY |
表明一个不适当的 I/O 控制操作. |
ENXIO |
表明没有该设备或地址 . |
EOPNOTSUPP |
表明一个操作不被socket所支持. 注意尽管`ENOTSUP` 和 `EOPNOTSUPP` 在Linux上有相同的值时, 根据 POSIX.1 规范,这些错误值应该不同.) |
EOVERFLOW |
表明一个值太大以至于难以用给定的数据类型存储. |
EPERM |
表明操作没有被许可. |
EPIPE |
表明破裂的管道 . |
EPROTO |
表明协议错误 . |
EPROTONOSUPPORT |
表明一个协议不被支持 . |
EPROTOTYPE |
表明socket错误的协议类型 . |
ERANGE |
表明结果太大了 . |
EROFS |
表明该文件系统是只读的 . |
ESPIPE |
表明无效的查询操作 . |
ESRCH |
表明没有这样的进程. |
ESTALE |
表明该文件处理是稳定的 . |
ETIME |
表明一个过期的时钟 . |
ETIMEDOUT |
表明该连接超时 . |
ETXTBSY |
表明一个文本文件处于忙碌 . |
EWOULDBLOCK |
表明该操作被屏蔽 . |
EXDEV |
表明一个不合适的连接 . |
Windows 系统特有的错误常量#
下面的错误码与Windows系统相关:
常量 | 描述 |
---|---|
WSAEINTR |
表明中断的函数调用 . |
WSAEBADF |
表明一个无效的文件句柄 . |
WSAEACCES |
表明权限不够完成操作 . |
WSAEFAULT |
表明无效的指针地址 . |
WSAEINVAL |
表明无效的参数被传递 . |
WSAEMFILE |
表明有太多打开的文件 . |
WSAEWOULDBLOCK |
表明资源暂时不可用 . |
WSAEINPROGRESS |
表明操作当前正在进行中 . |
WSAEALREADY |
表明操作已经在进行中 . |
WSAENOTSOCK |
表明资源不是 socket. |
WSAEDESTADDRREQ |
表明需要目的地址 . |
WSAEMSGSIZE |
表明消息太长 . |
WSAEPROTOTYPE |
表明socket协议类型错误 . |
WSAENOPROTOOPT |
表明错误的协议选项 . |
WSAEPROTONOSUPPORT |
表明协议不被支持 . |
WSAESOCKTNOSUPPORT |
表明socket类型不被支持 . |
WSAEOPNOTSUPP |
表明操作不被支持 . |
WSAEPFNOSUPPORT |
表明协议簇不被支持 . |
WSAEAFNOSUPPORT |
表明地址簇不被支持 . |
WSAEADDRINUSE |
表明网络地址已经在使用 . |
WSAEADDRNOTAVAIL |
表明网络地址不可用. |
WSAENETDOWN |
表明网络关闭 . |
WSAENETUNREACH |
表明网络不可达 . |
WSAENETRESET |
表明网络连接被重置 . |
WSAECONNABORTED |
表明连接被终止 . |
WSAECONNRESET |
表明连接被同伴重置 . |
WSAENOBUFS |
表明没有可用的缓存空间 . |
WSAEISCONN |
表明socket已经连接 . |
WSAENOTCONN |
表明socket没有连接 . |
WSAESHUTDOWN |
表明数据在socket关闭之后,不能被发送 . |
WSAETOOMANYREFS |
表明有太多的引用 . |
WSAETIMEDOUT |
表明连接超时 . |
WSAECONNREFUSED |
表明连接被拒绝 . |
WSAELOOP |
表明名字不能被翻译 . |
WSAENAMETOOLONG |
表明名字太长 . |
WSAEHOSTDOWN |
表明网络主机关闭 . |
WSAEHOSTUNREACH |
表明没有到网络主机的路由 . |
WSAENOTEMPTY |
表明目录非空 . |
WSAEPROCLIM |
表明有太多的进程 . |
WSAEUSERS |
表明已经超过用户指标 . |
WSAEDQUOT |
表明已经超过磁盘指标 . |
WSAESTALE |
表明一个稳定的文件句柄引用 . |
WSAEREMOTE |
表明项目是远程的 . |
WSASYSNOTREADY |
表明网络子系统尚未准备好 . |
WSAVERNOTSUPPORTED |
表明 winsock.dll 版本在范围之外. |
WSANOTINITIALISED |
表明成功的 WSAStartup(Windows异步socket)还没有被执行 . |
WSAEDISCON |
表明一个优雅的关机正在进行 . |
WSAENOMORE |
表明没有更多的结果 . |
WSAECANCELLED |
表明一个操作已经被取消 . |
WSAEINVALIDPROCTABLE |
表明过程调用表是无效的 . |
WSAEINVALIDPROVIDER |
表明无效的服务提供者 . |
WSAEPROVIDERFAILEDINIT |
表明服务提供者初始化失败 . |
WSASYSCALLFAILURE |
表明系统调用失败 . |
WSASERVICE_NOT_FOUND |
表明服务没有被找到 . |
WSATYPE_NOT_FOUND |
表明类类型没有被找到 . |
WSA_E_NO_MORE |
表明没有更多的结果 . |
WSA_E_CANCELLED |
表明调用被取消 . |
WSAEREFUSED |
表明数据库请求被拒绝 . |
dlopen Constants#
如果在操作系统上可用,则以下常量在os.constants.dlopen
中导出。 有关详细信息,请参阅dlopen(3)信息。
Constant | Description |
---|---|
RTLD_LAZY |
Perform lazy binding. Node.js sets this flag by default. |
RTLD_NOW |
Resolve all undefined symbols in the library before dlopen(3) returns. |
RTLD_GLOBAL |
Symbols defined by the library will be made available for symbol resolution of subsequently loaded libraries. |
RTLD_LOCAL |
The converse of `RTLD_GLOBAL`. This is the default behavior if neither flag is specified. |
RTLD_DEEPBIND |
Make a self-contained library use its own symbols in preference to symbols from previously loaded libraries. |
libuv 常量#
常量 | 描述 |
---|---|
UV_UDP_REUSEADDR |