Node.js v25.0.0 文档
- Node.js v25.0.0
-
目录
- 操作系统
os.EOLos.availableParallelism()os.arch()os.constantsos.cpus()os.devNullos.endianness()os.freemem()os.getPriority([pid])os.homedir()os.hostname()os.loadavg()os.machine()os.networkInterfaces()os.platform()os.release()os.setPriority([pid, ]priority)os.tmpdir()os.totalmem()os.type()os.uptime()os.userInfo([options])os.version()- OS 常量
- 操作系统
-
索引
- 断言测试
- 异步上下文跟踪
- 异步钩子
- 缓冲区
- C++ 插件
- 使用 Node-API 的 C/C++ 插件
- C++ 嵌入器 API
- 子进程
- 集群
- 命令行选项
- 控制台
- 加密
- 调试器
- 已弃用的 API
- 诊断通道
- DNS
- 域
- 环境变量
- 错误
- 事件
- 文件系统
- 全局对象
- HTTP
- HTTP/2
- HTTPS
- 检查器
- 国际化
- 模块:CommonJS 模块
- 模块:ECMAScript 模块
- 模块:
node:moduleAPI - 模块:包
- 模块:TypeScript
- 网络
- 操作系统
- 路径
- 性能钩子
- 权限
- 进程
- Punycode
- 查询字符串
- 逐行读取
- REPL
- 报告
- 单一可执行文件应用
- SQLite
- 流
- 字符串解码器
- 测试运行器
- 定时器
- TLS/SSL
- 跟踪事件
- TTY
- UDP/数据报
- URL
- 实用工具
- V8
- 虚拟机
- WASI
- Web Crypto API
- Web Streams API
- 工作线程
- Zlib
- 其他版本
- 选项
OS#
源代码: lib/os.js
node:os 模块提供了与操作系统相关的实用方法和属性。可以使用以下方式访问:
import os from 'node:os';const os = require('node:os');
os.EOL#
- 类型:<string>
操作系统特定的行尾标记。
- 在 POSIX 系统上是
\n - 在 Windows 系统上是
\r\n
os.availableParallelism()#
- 返回:<integer>
返回一个程序应使用的默认并行度的估计值。返回值总是大于零。
此函数是 libuv 的 uv_available_parallelism() 的一个简单封装。
os.arch()#
- 返回: <string>
返回编译 Node.js 二进制文件时所使用的操作系统的 CPU 架构。可能的值有 'arm'、'arm64'、'ia32'、'loong64'、'mips'、'mipsel'、'ppc64'、'riscv64'、's390x' 和 'x64'。
返回值等同于 process.arch。
os.constants#
- 类型:<Object>
包含常用的操作系统特定常量,用于错误码、进程信号等。定义的具体常量在OS 常量中有详细描述。
os.cpus()#
- 返回:<Object[]>
返回一个对象数组,其中包含有关每个逻辑 CPU 核心的信息。如果无法获取 CPU 信息(例如 /proc 文件系统不可用),则数组将为空。
每个对象包含的属性有:
[
{
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,
},
},
]
nice 值仅适用于 POSIX 系统。在 Windows 上,所有处理器的 nice 值始终为 0。
不应使用 os.cpus().length 来计算应用程序可用的并行度。应为此目的使用 os.availableParallelism()。
os.devNull#
- 类型:<string>
平台特定的空设备文件路径。
- 在 Windows 上是
\\.\nul - 在 POSIX 系统上是
/dev/null
os.endianness()#
- 返回: <string>
返回一个字符串,标识编译 Node.js 二进制文件时所使用的 CPU 的字节序。
可能的值为 'BE'(大端)和 'LE'(小端)。
os.freemem()#
- 返回:<integer>
返回系统中可用内存的字节数,为一个整数。
os.getPriority([pid])#
返回由 pid 指定的进程的调度优先级。如果未提供 pid 或为 0,则返回当前进程的优先级。
os.homedir()#
- 返回: <string>
返回当前用户主目录的字符串路径。
在 POSIX 系统上,如果定义了 $HOME 环境变量,则使用该变量。否则,它会使用有效用户 ID 来查找用户的主目录。
在 Windows 上,如果定义了 USERPROFILE 环境变量,则使用该变量。否则,它会使用当前用户的配置文件目录路径。
os.hostname()#
- 返回: <string>
以字符串形式返回操作系统的主机名。
os.loadavg()#
- 返回:<number[]>
返回一个包含 1 分钟、5 分钟和 15 分钟负载平均值的数组。
负载平均值是操作系统计算的系统活动度量,表示为一个小数。
负载平均值是 Unix 特有的概念。在 Windows 上,返回值始终为 [0, 0, 0]。
os.machine()#
- 返回: <string>
以字符串形式返回机器类型,例如 arm、arm64、aarch64、mips、mips64、ppc64、ppc64le、s390x、i386、i686、x86_64。
在 POSIX 系统上,机器类型通过调用 uname(3) 确定。在 Windows 上,使用 RtlGetVersion(),如果不可用,则会使用 GetVersionExW()。更多信息请参阅 https://en.wikipedia.org/wiki/Uname#Examples。
os.networkInterfaces()#
- 返回:<Object>
返回一个对象,其中包含已分配网络地址的网络接口。
返回对象中的每个键都标识一个网络接口。关联的值是一个对象数组,每个对象描述一个分配的网络地址。
已分配的网络地址对象上可用的属性包括:
address<string> 已分配的 IPv4 或 IPv6 地址。netmask<string> IPv4 或 IPv6 网络掩码。family<string>IPv4或IPv6。mac<string> 网络接口的 MAC 地址。internal<boolean> 如果网络接口是环回接口或类似的不可远程访问的接口,则为true;否则为false。scopeid<number> 数字 IPv6 范围 ID(仅当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',
scopeid: 0,
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',
scopeid: 1,
internal: false,
cidr: 'fe80::a00:27ff:fe4e:66a1/64'
}
]
}
os.platform()#
- 返回: <string>
返回一个字符串,标识编译 Node.js 二进制文件时所使用的操作系统平台。该值在编译时设置。可能的值有 'aix'、'darwin'、'freebsd'、'linux'、'openbsd'、'sunos' 和 'win32'。
返回值等同于 process.platform。
如果在 Android 操作系统上构建 Node.js,也可能返回值 'android'。Android 支持是实验性的。
os.release()#
- 返回: <string>
以字符串形式返回操作系统。
在 POSIX 系统上,操作系统版本通过调用 uname(3) 确定。在 Windows 上,使用 GetVersionExW()。更多信息请参阅 https://en.wikipedia.org/wiki/Uname#Examples。
os.setPriority([pid, ]priority)#
尝试为由 pid 指定的进程设置调度优先级。如果未提供 pid 或为 0,则使用当前进程的进程 ID。
priority 输入必须是介于 -20(高优先级)和 19(低优先级)之间的整数。由于 Unix 优先级级别和 Windows 优先级类别之间的差异,priority 被映射到 os.constants.priority 中的六个优先级常量之一。在检索进程优先级级别时,这种范围映射可能导致 Windows 上的返回值略有不同。为避免混淆,请将 priority 设置为优先级常量之一。
在 Windows 上,将优先级设置为 PRIORITY_HIGHEST 需要提升的用户权限。否则,设置的优先级将被静默地降低到 PRIORITY_HIGH。
os.tmpdir()#
- 返回: <string>
以字符串形式返回操作系统的默认临时文件目录。
在 Windows 上,结果可以被 TEMP 和 TMP 环境变量覆盖,且 TEMP 优先于 TMP。如果两者都未设置,则默认为 %SystemRoot%\temp 或 %windir%\temp。
在非 Windows 平台上,将按所描述的顺序检查 TMPDIR、TMP 和 TEMP 环境变量以覆盖此方法的结果。如果这些变量都未设置,则默认为 /tmp。
一些操作系统发行版会默认配置 TMPDIR(非 Windows)或 TEMP 和 TMP(Windows),而无需系统管理员进行额外配置。os.tmpdir() 的结果通常反映系统偏好,除非用户明确覆盖它。
os.totalmem()#
- 返回:<integer>
以整数形式返回系统总内存的字节数。
os.type()#
- 返回: <string>
返回由 uname(3) 返回的操作系统名称。例如,在 Linux 上返回 'Linux',在 macOS 上返回 'Darwin',在 Windows 上返回 'Windows_NT'。
有关在各种操作系统上运行 uname(3) 的输出的更多信息,请参阅 https://en.wikipedia.org/wiki/Uname#Examples。
os.uptime()#
- 返回:<integer>
返回系统运行时间的秒数。
os.userInfo([options])#
options<Object>encoding<string> 用于解释结果字符串的字符编码。如果encoding设置为'buffer',则username、shell和homedir值将是Buffer实例。默认值:'utf8'。
- 返回:<Object>
返回有关当前有效用户的信息。在 POSIX 平台上,这通常是密码文件的一个子集。返回的对象包括 username、uid、gid、shell 和 homedir。在 Windows 上,uid 和 gid 字段为 -1,shell 为 null。
os.userInfo() 返回的 homedir 值由操作系统提供。这与 os.homedir() 的结果不同,后者会先查询环境变量以获取主目录,然后再回退到操作系统的响应。
如果用户没有 username 或 homedir,则抛出 SystemError。
os.version()#
- 返回: <string>
返回一个标识内核版本的字符串。
在 POSIX 系统上,操作系统版本通过调用 uname(3) 确定。在 Windows 上,使用 RtlGetVersion(),如果不可用,则会使用 GetVersionExW()。更多信息请参阅 https://en.wikipedia.org/wiki/Uname#Examples。
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 |
当套接字有紧急数据要读取时发送给进程。 |
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 |
表示套接字已经有待处理的连接正在进行中。 |
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 |
表示套接字已连接。 |
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 |
表示套接字未连接。 |
ENOTDIR |
表示路径不是目录。 |
ENOTEMPTY |
表示目录不为空。 |
ENOTSOCK |
表示给定的项不是套接字。 |
ENOTSUP |
表示不支持给定的操作。 |
ENOTTY |
表示不适当的 I/O 控制操作。 |
ENXIO |
表示没有这样的设备或地址。 |
EOPNOTSUPP |
表示套接字上不支持某项操作。尽管在 Linux 上 ENOTSUP 和 EOPNOTSUPP 的值相同,但根据 POSIX.1,这些错误值应该是不同的。) |
EOVERFLOW |
表示一个值太大,无法存储在给定的数据类型中。 |
EPERM |
表示不允许该操作。 |
EPIPE |
表示管道已损坏。 |
EPROTO |
表示协议错误。 |
EPROTONOSUPPORT |
表示不支持该协议。 |
EPROTOTYPE |
表示套接字的协议类型错误。 |
ERANGE |
表示结果太大。 |
EROFS |
表示文件系统是只读的。 |
ESPIPE |
表示无效的寻址操作。 |
ESRCH |
表示没有这样的进程。 |
ESTALE |
表示文件句柄已过时。 |
ETIME |
表示计时器已过期。 |
ETIMEDOUT |
表示连接超时。 |
ETXTBSY |
表示文本文件正忙。 |
EWOULDBLOCK |
表示操作将被阻塞。 |
EXDEV |
表示不正确的链接。 |
Windows 特定的错误常量#
以下错误代码是 Windows 操作系统特有的。
| 常量 | 描述 |
|---|---|
WSAEINTR |
表示函数调用被中断。 |
WSAEBADF |
表示无效的文件句柄。 |
WSAEACCES |
表示完成操作的权限不足。 |
WSAEFAULT |
表示无效的指针地址。 |
WSAEINVAL |
表示传递了无效的参数。 |
WSAEMFILE |
表示打开的文件过多。 |
WSAEWOULDBLOCK |
表示资源暂时不可用。 |
WSAEINPROGRESS |
表示操作正在进行中。 |
WSAEALREADY |
表示操作已在进行中。 |
WSAENOTSOCK |
表示资源不是套接字。 |
WSAEDESTADDRREQ |
表示需要目标地址。 |
WSAEMSGSIZE |
表示消息大小过长。 |
WSAEPROTOTYPE |
表示套接字的协议类型错误。 |
WSAENOPROTOOPT |
表示协议选项错误。 |
WSAEPROTONOSUPPORT |
表示不支持该协议。 |
WSAESOCKTNOSUPPORT |
表示不支持该套接字类型。 |
WSAEOPNOTSUPP |
表示不支持该操作。 |
WSAEPFNOSUPPORT |
表示不支持该协议族。 |
WSAEAFNOSUPPORT |
表示不支持该地址族。 |
WSAEADDRINUSE |
表示网络地址已被使用。 |
WSAEADDRNOTAVAIL |
表示网络地址不可用。 |
WSAENETDOWN |
表示网络已关闭。 |
WSAENETUNREACH |
表示网络不可达。 |
WSAENETRESET |
表示网络连接已重置。 |
WSAECONNABORTED |
表示连接已中止。 |
WSAECONNRESET |
表示连接已被对端重置。 |
WSAENOBUFS |
表示没有可用的缓冲区空间。 |
WSAEISCONN |
表示套接字已连接。 |
WSAENOTCONN |
表示套接字未连接。 |
WSAESHUTDOWN |
表示套接字关闭后无法发送数据。 |
WSAETOOMANYREFS |
表示引用过多。 |
WSAETIMEDOUT |
表示连接超时。 |
WSAECONNREFUSED |
表示连接被拒绝。 |
WSAELOOP |
表示无法转换名称。 |
WSAENAMETOOLONG |
表示名称太长。 |
WSAEHOSTDOWN |
表示网络主机已关闭。 |
WSAEHOSTUNREACH |
表示没有到网络主机的路由。 |
WSAENOTEMPTY |
表示目录不为空。 |
WSAEPROCLIM |
表示进程过多。 |
WSAEUSERS |
表示已超过用户配额。 |
WSAEDQUOT |
表示已超过磁盘配额。 |
WSAESTALE |
表示文件句柄引用已过时。 |
WSAEREMOTE |
表示该项是远程的。 |
WSASYSNOTREADY |
表示网络子系统尚未就绪。 |
WSAVERNOTSUPPORTED |
表示 winsock.dll 版本超出范围。 |
WSANOTINITIALISED |
表示尚未成功执行 WSAStartup。 |
WSAEDISCON |
表示正在进行优雅关闭。 |
WSAENOMORE |
表示没有更多结果。 |
WSAECANCELLED |
表示操作已被取消。 |
WSAEINVALIDPROCTABLE |
表示过程调用表无效。 |
WSAEINVALIDPROVIDER |
表示服务提供程序无效。 |
WSAEPROVIDERFAILEDINIT |
表示服务提供程序初始化失败。 |
WSASYSCALLFAILURE |
表示系统调用失败。 |
WSASERVICE_NOT_FOUND |
表示未找到服务。 |
WSATYPE_NOT_FOUND |
表示未找到类类型。 |
WSA_E_NO_MORE |
表示没有更多结果。 |
WSA_E_CANCELLED |
表示调用被取消。 |
WSAEREFUSED |
表示数据库查询被拒绝。 |
dlopen 常量#
如果在操作系统上可用,以下常量会导出在 os.constants.dlopen 中。详细信息请参阅 dlopen(3)。
| 常量 | 描述 |
|---|---|
RTLD_LAZY |
执行惰性绑定。Node.js 默认设置此标志。 |
RTLD_NOW |
在 dlopen(3) 返回之前解析库中所有未定义的符号。 |
RTLD_GLOBAL |
库定义的符号将可用于后续加载的库的符号解析。 |
RTLD_LOCAL |
RTLD_GLOBAL 的反义。如果两个标志都未指定,则这是默认行为。 |
RTLD_DEEPBIND |
使自包含的库优先使用自己的符号,而不是先前加载的库中的符号。 |
优先级常量#
以下进程调度常量由 os.constants.priority 导出。
| 常量 | 描述 |
|---|---|
PRIORITY_LOW |
最低的进程调度优先级。这对应于 Windows 上的 IDLE_PRIORITY_CLASS,以及在所有其他平台上的 nice 值为 19。 |
PRIORITY_BELOW_NORMAL |
介于 PRIORITY_LOW 和 PRIORITY_NORMAL 之间的进程调度优先级。这对应于 Windows 上的 BELOW_NORMAL_PRIORITY_CLASS,以及在所有其他平台上的 nice 值为 10。 |
PRIORITY_NORMAL |
默认的进程调度优先级。这对应于 Windows 上的 NORMAL_PRIORITY_CLASS,以及在所有其他平台上的 nice 值为 0。 |
PRIORITY_ABOVE_NORMAL |
介于 PRIORITY_NORMAL 和 PRIORITY_HIGH 之间的进程调度优先级。这对应于 Windows 上的 ABOVE_NORMAL_PRIORITY_CLASS,以及在所有其他平台上的 nice 值为 -7。 |
PRIORITY_HIGH |
介于 PRIORITY_ABOVE_NORMAL 和 PRIORITY_HIGHEST 之间的进程调度优先级。这对应于 Windows 上的 HIGH_PRIORITY_CLASS,以及在所有其他平台上的 nice 值为 -14。 |
PRIORITY_HIGHEST |
最高的进程调度优先级。这对应于 Windows 上的 REALTIME_PRIORITY_CLASS,以及在所有其他平台上的 nice 值为 -20。 |
libuv 常量#
| 常量 | 描述 |
|---|---|
UV_UDP_REUSEADDR |