如何使用NodeJsstream过滤JSon文件

我正在使用Node.JSstream来parsingJSON文件并将其绘制在地图上。 我有两个文件:前端绘制数据的地方

'/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-现在我想过滤这些数据

我有三个select来做到这一点

1-在客户端:我不知道是否应该使用Angular-JS过滤,或纯JS使用这个库Filter.JS

我有一个非常大的文件(100MB)。 所以,我们来考虑这个例子:

  [ {'name': 'Apple', 'colour': 'Red'}, {'name': 'Orange', 'colour': 'Orange'}, {'name': 'Banana', 'colour': 'Yellow'}] 

http://jsfiddle.net/65Pyj/

比方说,我想select所有与绿色的点

 var output = arr.filter(function(x){return x.colour =="green"}); 

2 – 在服务器端我的问题,我想过滤服务器端的JSON数据,所以我不加载和重新加载数据(因为它很大)。 我应该过滤Node.Js上的数据。

当我checkbox“绿色”,我想过滤数据。 然后使用上述脚本重新加载它。

我读了expression式3,我们可以直接使用res.json({color:'green'}) http://expressjs.com/api.html#res.json

但是,我怎样才能让它监听客户端的事件(checkbox),然后重新加载jsonfile。

任何想法我怎么能做到这一点? 我正在使用Node.Js / express

为了过滤服务器端而不加载和一次parsing整个文件,你可以看看这些模块可以parsingJSONstream(文件或其他):

  • JSONStream
  • oboejs
  • 单簧pipe – 这个界面比上面两个界面低得多