- 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 | 发送给一个进程来立即终止它. | 
| SIGUSR1SIGUSR2 | 发送给一个进程来确定它的用户定义情况. | 
| 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 |