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

如何解决本地目录JSON文件require引入后读取为undefined的问题?

解决require引入JSON文件返回undefined的问题

嘿,我之前也踩过这个坑,咱们一步步来排查和解决:

1. 检查文件名的大小写

Node.js在类Unix系统(Linux、macOS)里对文件名大小写是敏感的。如果你的实际文件名是contributors.json(小写的.json扩展名),但代码里写的是contributors.JSON(大写的.JSON),系统会找不到文件,直接返回undefined。

解决办法:把代码里的文件名改成和实际文件完全一致的大小写,建议统一用小写的.json扩展名。

2. 验证相对路径是否正确

../services/contributors.JSON这个相对路径是相对于当前执行代码的文件位置的,很容易出错。你可以先打印当前文件的绝对路径来确认:

console.log(__dirname); // 输出当前代码文件所在的绝对路径

然后手动拼接../services/contributors.JSON,看看是不是指向你实际存放JSON文件的位置。如果路径不对,调整成正确的相对路径(比如如果是../../services/就改成对应的层级)。

3. 尝试用fs模块手动读取解析

如果require的方式还是有问题,可以换用fs模块直接读取文件再解析,这种方式更直观,也能帮你排查问题:

const fs = require('fs');
const path = require('path');

// 用path.join确保路径在不同系统下都能正确解析
const jsonFilePath = path.join(__dirname, '../services/contributors.json');
try {
  const jsonContent = fs.readFileSync(jsonFilePath, 'utf8');
  const json_data = JSON.parse(jsonContent);
  console.log(json_data); // 现在应该能拿到正确的JSON数据了
} catch (err) {
  console.error('读取或解析JSON文件出错:', err);
}

如果这里报错,就能直接看到是文件不存在还是JSON格式有问题。

4. 确认JSON文件格式和存在性

最后再检查一遍:

  • JSON文件确实存在于你指定的路径下
  • JSON格式没有语法错误(比如有没有多余的逗号、未闭合的引号,你提供的示例格式是没问题的,但如果实际文件有修改要确认)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:10:57