【发布时间】: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