我如何使用node.js读取一系列JavaScript文字?

问题描述 投票:0回答:1

我有一个类似的日志文件

log.txt

{ timestamp: '2019-10-24 04:39:26',
     referer: 'websocket',
     switch:
      { program:
         'elephant',
        preview: 'gopher',
        id: 1571891966523 } } }
{ 'switch-type': 'non-buffered',
     'switch-time': 17,
     'preview-loaded': 477,
     'video-loaded': 345 } }
{ timestamp: '2019-10-24 04:39:35',
     referer: 'websocket',
     switch:
      { program: 'gopher',
        preview: 'camel',
        id: 1571891975677 } } }
{ 'switch-type': 'pre-buffered',
     'switch-time': 15,
     'preview-loaded': 348 } }
{ timestamp: '2019-10-24 04:39:37',
     referer: 'websocket',
     switch:
      { program: 'camel',
        preview:
         'elephant',
        id: 1571891977697 } } }
{ 'switch-type': 'non-buffered',
     'switch-time': 14,
     'preview-loaded': 302,
     'video-loaded': 203 } }
...

该日志文件是由一个定期运行的长期运行的node.js脚本生成的

// logging script
...
console.dir(data);
...

我想要一个node.js脚本来解析该日志文件,并给我一个简短的摘要。该node.js脚本当前类似于[]

// analyze_logs.js
var fs = require('fs');
var obj = JSON.parse(fs.readFileSync('file', 'utf8'));

我得到错误:

JSONDecodeError: Expecting property name enclosed in double quotes

How can I pretty-print JSON using node.js?让我意识到上述格式是not

(一系列严格的JSON格式)。

是“ like JSON, except without quotes for keys”。

  1. 我如何从console.dir()读取打印的数据,无论是哪种格式,将其从文本文件读入我的node.js脚本,并将其解析回普通的JavaScript对象?

  2. 当文本文件中包含大量此类对象时,如何一次读取它们? (JSON streaming似乎有一些read a series of JSON objects库,例如npm stream-json,但它们似乎要求日志记录脚本发出严格的JSON)。

我有一个日志文件,看起来类似于log.txt {时间戳:'2019-10-24 04:39:26',引荐来源:'websocket',开关:{程序:'elephant',预览:'gopher' ,...

javascript node.js stream console.log console.dir
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.