【问题标题】:Testing Node.js data processing测试 Node.js 数据处理
【发布时间】:2020-08-07 00:18:02
【问题描述】:

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

即使使用 Browserify,我也无法在浏览器中运行 fs 模块。 Firefox 告诉我 createReadStream 不是函数。

index.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);
    }));

sample.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"
      }
    ]
  }
}

【问题讨论】:

  • 问题是你的客户端(浏览器)还是服务器(NodeJs)??您是否尝试在浏览器中打开文件并对其执行某些操作???

标签: javascript node.js json fs


【解决方案1】:

无需涉及浏览器;只需运行node parse.js。 Node.js 也有console.log,你会在控制台看到输出。

如果你安装fs-extra,你可以使用fs.readJson()直接获取JSON作为一个对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-07
    • 2020-06-26
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 2011-02-26
    • 1970-01-01
    相关资源
    最近更新 更多