常见系统错误
【Common system errors】
这是一个在编写 Node.js 程序时常遇到的系统错误列表。有关完整列表,请参见 errno(3) 手册页。
【This is a list of system errors commonly-encountered when writing a Node.js
program. For a comprehensive list, see the errno(3) man page.】
-
EACCES(权限被拒绝):尝试以文件访问权限不允许的方式访问文件。 -
EADDRINUSE(地址已被使用):尝试将服务器(net、http或https)绑定到本地地址时失败,因为本地系统上的另一个服务器已占用该地址。 -
ECONNREFUSED(连接被拒绝):无法建立连接,因为目标机器主动拒绝了连接。这通常是由于尝试连接到目标主机上处于非活动状态的服务导致的。 -
ECONNRESET(连接被对方重置):连接被对方强制关闭。通常是由于远程套接字的连接因超时或重启而丢失导致的。通常在http和net模块中会遇到。 -
EEXIST(文件已存在):操作的目标文件已存在,而该操作要求目标文件不存在。 -
EISDIR(是一个目录):操作本应针对文件,但给定的路径名是一个目录。 -
EMFILE(系统中打开的文件过多):系统中可允许的 文件描述符 数量已达到上限,在至少关闭一个文件之前,无法处理更多文件描述符的请求。当同时并行打开许多文件时会遇到此问题,尤其是在文件描述符限制较低的系统(特别是 macOS)中。若要解决限制过低的问题,请在将运行 Node.js 进程的同一 shell 中执行ulimit -n 2048。 -
ENOENT(没有这样的文件或目录):通常由fs操作引发,用于表示指定路径的某个组件不存在。无法通过给定路径找到任何实体(文件或目录)。 -
ENOTDIR(不是目录):给定路径名的某个组件存在,但并非预期的目录。通常由fs.readdir引发。 -
ENOTEMPTY(目录非空):操作的目标是包含条目的目录,而该操作通常需要一个空目录,通常是fs.unlink。 -
ENOTFOUND(DNS 查询失败):表示EAI_NODATA或EAI_NONAME的 DNS 失败。这不是标准的 POSIX 错误。 -
EPERM(操作不允许):尝试执行需要提升权限的操作。 -
EPIPE(管道断裂):对没有进程读取数据的管道、套接字或 FIFO 进行写操作。通常在net和http层遇到,表明写入的流的远端已被关闭。 -
ETIMEDOUT(操作超时):连接或发送请求失败,因为连接的另一方在一段时间后没有正确响应。通常由http或net遇到。通常表示socket.end()没有被正确调用。