首页 > 解决方案 > 如何通过文件读取操作访问其他文件的值

问题描述

有两个文件。

  1. 主文件(文件名 => transaction.js)
  2. 对象声明文件(文件名=> checkin.txt)

2 . 对象声明文件(checkin.txt)

    {cronCondition: true,startDate:""} 

1. 主文件(文件名=> transaction.js)

fs.readFile((__dirname + "/ checkin.txt"), 'utf8', function (err, data) {
     if (err) {
         console.log(err);
         process.exit(0);
     }else{
        console.log(data);
        process.exit();
     }
 })

当我 console.log 数据的值时,它返回{cronCondition: true,startDate:""}。这对我来说很好,但我只想访问cronCondition的值。为此,我尝试了控制台data.cronCondition。它返回undefined

您如何访问cronCondition的值?

标签: javascriptnode.jsexpressfs

解决方案


您的源文件cronDate.txt包含在技术上无效的 JSON,因此您需要使用一个库来解析带有“宽松”规则的 JSON(例如,不带引号的 JSON、带单引号的 JSON、换行符等)。JSON5是一个可以做到这一点的库。

安装:

npm install json5
const JSON5 = require('json5')

用法:

fs.readFile((__dirname + "/cronDate.txt"), 'utf8', function (err, data) {
  if (err) {
     console.log(err);
     process.exit(0);
  } else {
    var test = JSON5.parse(data);
    console.log(test);
    process.exit();
  }
})

另外,我注意到你的问题有一点矛盾。您的问题的顶部指出您的源文件是checkin.txt,而您实际读取的文件是cronDate.txt. 您需要验证您是否从正确的文件中读取。编辑:看起来你现在已经纠正了你原来的问题。


推荐阅读