如何使用NodeJs流过滤JSon文件

时间:2014-04-23 20:33:10

标签: javascript jquery json node.js angularjs

我正在使用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'}]

Filter.JS

让我们说我想选择所有绿色的点

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

1 个答案:

答案 0 :(得分:1)

为了在不加载和解析整个文件的情况下过滤服务器端,您可以查看这些可以解析JSON流(文件或其他)的模块: