我正在使用Node.JS流来解析json文件并将其绘制在地图上。 我有两个文件: 我绘制数据的前端
'/points.geojson'
服务器端: 1-我加载外部文件(output.json)。
var fs = require('fs');
app.get('/points.json', function(req, res) {
res.setHeader('Content-Type', 'application/json');
fs.createReadStream(__dirname + '/output.json').pipe(res);
});
2-现在我想过滤这些数据
我有三个选择
1-在客户端: 我不确定我是否应该使用Angular-JS过滤,或者使用此库{j}使用纯JS?{/ p>
我有一个非常庞大的文件(100mb)。所以,让我们考虑一下这个例子:
[
{'name': 'Apple', 'colour': 'Red'},
{'name': 'Orange', 'colour': 'Orange'},
{'name': 'Banana', 'colour': 'Yellow'}]
让我们说我想选择所有绿色的点
var output = arr.filter(function(x){return x.colour =="green"});
2-在服务器端 我的问题是我想在服务器端过滤json数据,所以我不会加载和重新加载数据(因为它很大)。 我应该过滤Node.Js上的数据。
当我复选框"绿色"时,我想过滤数据。然后使用上述脚本重新加载它。
我读到了快递3,我们可以直接使用res.json({color:' green'}) http://jsfiddle.net/65Pyj/
但是如何让它在客户端监听事件(复选框),然后重新加载jsonfile。
任何想法我该怎么做?我正在使用Node.Js / express
答案 0 :(得分:1)
为了在不加载和解析整个文件的情况下过滤服务器端,您可以查看这些可以解析JSON流(文件或其他)的模块: