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

Node.js使用fs.readdirSync报ENOENT错误,求排查路径问题

问题解答:Node.js fs.readdirSync 报 ENOENT 错误
  • 错误根源:你用单引号'包裹了带变量的路径字符串,单引号无法解析ES6模板字符串的${folder}变量语法,导致路径被当作字面量./src/functions/${folder}处理,而非替换成functionFolders数组里的实际文件夹名,系统自然找不到对应目录。

  • 修复方案:

    1. 把包裹路径的单引号换成反引号`,让模板字符串正常解析变量:
      for (const folder of functionFolders ){
        const functionFiles = fs.readdirSync(`./src/functions/${folder}`).filter(file => file.endsWith('.js'));
        for (const file of functionFiles)
          require(`./src/functions/${folder}/${file}`)(client);
      }
      
    2. 修正路径一致性:原代码中require的路径少了src/前缀,和readdirSync的路径不匹配,这会导致后续加载模块时也出现找不到文件的问题,建议统一路径结构。
  • 额外验证建议:可以在readdirSync前添加console.log(./src/functions/${folder}),打印拼接后的路径,确认是否和实际项目的目录结构一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:15:51