【问题标题】:How to access value from other file by file read operation如何通过文件读取操作访问其他文件的值
【发布时间】:2018-10-17 23:33:46
【问题描述】:

有两个文件。

  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 的值?

【问题讨论】:

  • 您可能需要eval()文件的字符串内容才能将其转换为对象
  • 你从fs.readFile( [...] 'utf8' [...])得到一个字符串。你应该使用let parsedData = JSON.parse(data); console.log(parsedData.cronCondition);
  • 将您的文件制作为 json 格式 -> cronDate.txt 为 cronDate.json 如果您不想更改,然后将数据转换为对象格式。这样做。 JSON.parse(数据);然后访问它。
  • @Bellian 我试过 JSON.parse(data) 它会返回 SyntaxError: Unexpected token c in JSON at position 1
  • 你是对的,因为这不是有效的 JSON :/ 抱歉。在 JSON 中,名称必须在 ": {"cronCondition": true,"startDate":""} 中转义。

标签: javascript node.js express fs


【解决方案1】:

您的源文件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。您需要验证您是否从正确的文件中读取。 编辑:看来您现在已经更正了您原来的问题。

【讨论】:

    【解决方案2】:

    第二个文件的第一次更改格式为json格式

    2.Object声明文件(checkin.json)

    {"cronCondition":false,"startDate":"2018-02-07T18:30:00.000Z"}
    

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

    var cronValue = require('./checkin.json');

    console.log("cronData==>", cronValue.cronCondition)
    

    我认为不需要读取文件操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 2021-11-28
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多