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

如何通过文件读取操作获取其他文件中的值?(Node.js场景)

解决读取文本文件后无法直接使用对象内容的问题

看起来你已经成功读取到了checkin.txt的内容,但问题应该是没法直接把读取到的字符串当作JavaScript对象来访问属性对吧?毕竟fs.readFile返回的data是纯字符串,哪怕它长得像对象,本质还是字符串。下面给你两种可行的解决方案:

方案1:改用标准JSON格式(推荐)

你的checkin.txt里的内容是非标准的JS对象写法——JSON要求所有属性名必须用双引号包裹,所以先把checkin.txt的内容改成标准JSON:

{"cronCondition": true, "startDate": ""}

然后在transaction.js里用JSON.parse()把字符串转换成真正的JS对象,代码修改如下:

fs.readFile(__dirname + "/checkin.txt", 'utf8', function (err, data) {
  if (err) {
    console.log(err);
    process.exit(0);
  } else {
    try {
      // 把字符串解析成JS对象
      const checkinConfig = JSON.parse(data);
      // 现在可以正常访问属性了
      console.log('cronCondition:', checkinConfig.cronCondition);
      console.log('startDate:', checkinConfig.startDate);
    } catch (parseError) {
      console.log('解析配置出错:', parseError);
    }
    process.exit();
  }
})

另外注意你原代码里的路径"/ checkin.txt"多了个空格,可能会导致找不到文件,改成"/checkin.txt"更稳妥。

方案2:不修改文本格式(仅当文件内容完全可控时使用)

如果因为某些原因没法修改checkin.txt的格式,可以用eval来解析这个JS对象字符串,但一定要注意安全风险——eval会执行字符串里的任意代码,如果这个文件被恶意篡改,会有安全隐患。代码示例:

fs.readFile(__dirname + "/checkin.txt", 'utf8', function (err, data) {
  if (err) {
    console.log(err);
    process.exit(0);
  } else {
    try {
      // 用括号包裹字符串,避免语法错误
      const checkinConfig = eval(`(${data})`);
      console.log('cronCondition:', checkinConfig.cronCondition);
    } catch (evalError) {
      console.log('解析配置出错:', evalError);
    }
    process.exit();
  }
})

总结一下,优先选方案1,标准JSON格式更安全、规范,也不会有潜在的安全问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:04:58