测试Node.js数据处理

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

我试图从本地存储的JSON文件中读取一些数据,将其处理成单独的JS对象,并将其追加到一个队列中。我找不到一种方法来测试我的解析功能是否有效。为了测试它是否工作,我试图从本地JSON文件中提取数据,并将其打印到控制台。我认为在概念上有一些我不理解的地方,或者有一个我不知道的测试方法。

我无法运行 fs 模块,即使使用Browserify。Firefox告诉我 createReadStream 不是一个函数。

索引.html

<!DOCTYPE html>

<div id="container" style="position: relative; width: 100%; height: 700px;"></div>
<!-- <link rel="stylesheet" type="text/css" href="index.css" /> -->
<body>
    <script type="text/javascript" src="parse.js"></script>  
</body>
</html>

parse.js

//Assume JSON output = {attack source, attack destination, attack type}

//Required modules
//@ts-ignore: undeclared module
const watchStream = require('fs-watch-stream')
const es = require('event-stream')
const stream = require('JSONStream')
const fs = require('fs');

//Create websocket to receive json data instead?
//Save for later
//https.createServer(attacks).listen(9090)


function initial (){

    var filepath = 'sample.json';
    //Creates readable stream for JSON file parsing
    var stream = fs.createReadStream(filepath, { encoding: 'utf8' }),
        parser = stream.parse('*.');

    //Send read data to parser function
    return stream.pipe(parser);
}

initial()
    .pipe(es.mapSync(function (data) {
        console.log(data);
    }));

示例.json

{
  "employees": {
    "employee": [
      {
        "id": "1",
        "firstName": "Tom",
        "lastName": "Cruise",
        "photo": "https://jsonformatter.org/img/tom-cruise.jpg"
      },
      {
        "id": "2",
        "firstName": "Maria",
        "lastName": "Sharapova",
        "photo": "https://jsonformatter.org/img/Maria-Sharapova.jpg"
      },
      {
        "id": "3",
        "firstName": "Robert",
        "lastName": "Downey Jr.",
        "photo": "https://jsonformatter.org/img/Robert-Downey-Jr.jpg"
      }
    ]
  }
}
javascript node.js json fs
1个回答
0
投票

没有必要让浏览器参与进来,只要运行 node parse.js. Node.js有 console.log 你会在控制台中看到输出。

如果您安装了 fs-extra,您可以使用 fs.readJson() 直接以对象形式获取JSON。

© www.soinside.com 2019 - 2024. All rights reserved.