You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找Error对象内err.code的枚举取值?

Node.js 文件操作中 err.code 的常见取值及查找方法

嘿,这个问题我太熟了,Node.js 文件操作里的错误码可是日常排查问题的必备知识点~

一、文件操作相关的常见 err.code 取值

  • EEXIST: 文件/目录已存在(就是你代码里判断的那个场景)
  • ENOENT: 指定的文件或目录不存在,大概率是路径写错或者文件被删除了
  • EACCES: 没有足够的权限去读取/写入/执行目标文件,比如尝试修改系统级文件但没加权限
  • EISDIR: 你试图对一个目录执行文件操作,比如用fs.writeFile去写一个文件夹路径
  • ENOTDIR: 你试图对一个文件执行目录操作,比如用fs.readdir去读取一个普通文件
  • EBUSY: 目标文件或设备正被其他进程占用,无法进行操作,比如修改正在被打开的日志文件
  • EROFS: 尝试往只读文件系统里写入内容,比如挂载的光盘或者只读分区
  • EMFILE: 当前进程打开的文件描述符数量超过了系统限制,批量处理大量文件时可能出现
  • ENFILE: 整个系统打开的文件数量达到上限,相对少见,一般是服务器资源耗尽时会碰到

二、如何查找完整的 err.code 枚举值

有几个实用的方法可以获取所有枚举值:

  1. 查看 Node.js 内置常量
    直接在终端运行这条命令,就能打印出所有系统错误码的完整枚举(包含文件操作及其他系统级错误):

    node -e "console.log(require('constants').errno)"
    

    输出里每个错误码都对应一个数字标识,方便你对照排查。

  2. 打印完整 Error 对象
    你已经在尝试打印整个 Error 对象了,直接用console.error(err)就能看到完整的错误信息——除了err.code,还有err.message(更易懂的错误描述)、err.stack(调用栈,帮你找到出错的代码位置),部分文件操作错误还会附带err.path(出错的文件路径),这些信息能帮你更快定位问题根源。

  3. 查阅 Node.js 官方文档
    Node.js 官方文档里有专门的「System Errors」章节,里面详细列出了所有标准err.code的取值、对应的错误描述,以及常见的触发场景,是最权威的参考资料。

内容的提问来源于stack exchange,提问作者Amrmsmb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:12:37