常见系统错误
【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 进程的同一终端中执行ulimit -n 2048。ENOENT(没有这样的文件或目录):通常由fs操作引发,用于指示指定路径名的某个组件不存在。给定路径找不到任何实体(文件或目录)。ENOTDIR(不是目录):指定路径中的某个部分存在,但并非预期的目录。通常由fs.readdir引发。ENOTEMPTY(目录非空):目标目录中有条目,而该操作需要目录为空,通常是fs.unlink。ENOTFOUND(DNS 查找失败):表示 DNS 失败,可能是EAI_NODATA或EAI_NONAME。这不是标准的 POSIX 错误。EPERM(操作不允许):尝试执行需要提升权限的操作。EPIPE(管道破裂):对没有进程读取数据的管道、套接字或 FIFO 进行写操作时出现的错误。通常在net和http层遇到,表示被写入的数据流的远端已关闭。ETIMEDOUT(操作超时):连接或发送请求失败,因为连接方在一段时间后未正确响应。通常在http或net中遇到。通常表示socket.end()未被正确调用。